JAVA程序归递算法求解汉诺塔问题
首先你需要有下面这两个意识:
10多年的镇平网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整镇平建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“镇平网站设计”,“镇平网站推广”以来,每个客户项目都认真落实执行。
1.一个函数对于其它函数来说相当于一个盒子,他封装了其中的内容,其它函数只知道给它参数,然后得到它的结果。就好比一个做蛋糕的商店:我们只需要知道给钱,它就会给蛋糕。而我们不需要理解他们是怎么做出来的这个蛋糕。
2.调用的过程,就相当于上面例子中我们去买蛋糕的过程。谁说自己不能买自己店里的蛋糕呢?比如你是做蛋糕的,难道你不能买自己店里的蛋糕吗?函数的自我调用(递归?)也是这么回事情。
对于hanoi类里面,两个核心函数:
move(char getme, char purone):
这个函数的功能是:把getme最上面的盘子移动到purone位置,比如
move('A','B')就是把A柱子最上面那个盘子移动到B柱子的最上面。
hanoi(int n,char one,char two,char three):
这个函数的功能是:现在在柱子one上一共有n个盘子,这个函数能够通过two把它移动到three上面。
现在你了解了这两个函数设计的初衷,ok,我们来分别实现每个函数。
public void move(char getme,char purone)
{//请联系上面写的这个函数的功能来看:
c=c+1;//我们每移动一步,就计数一次
System.out.println(getme+"--"+putone+"搬盘次数为:"+c);
//这行使用输出来表明移动过了(事实上hanoi就是要让你详细说明移动过程,所谓“说明”,就是打印出每次的移动,那这里我们就把这次移动打印出来,这个没有任何问题吧?这个函数就是要把移动这件事情说出来,明白?
}
public void hanoi(int n,char one,char two,char three)
{//请回忆hanoi函数的功能,是要把one柱子上的前n个放到three柱子上:
if(n==1) //如果n==1,那也就是要把one柱子上最上面的那个移到three上面了,这就是move函数的作用,对吧?那就直接调用move(one,three)
move(one,three);
else{
//如果n1的话,那我们该怎么办?
分为三个步骤:
1.先想办法把one主子上的前n-1个移动到柱子two上
2.然后把one柱子上的第n个移动到柱子three上。
3.然后想办法把two柱子上的n-1个移动到three上。
对吧?现在你注意到第1步和第3步是不是就是hanoi这个函数的功能能够实现的呢?回答显然是肯定的,下面就是这三步。
hanoi(n-1,one,three,two); //把one柱子上的n-1个通过three移动到two上。
move(one,three); //把one主子上最上面那个(注意,上面一步已经把前n-1个移动到two上面了,one柱现在最上的那个就是第N个)
hanoi(n-1,two,one,three);//把two柱子上的n-1个移动到three柱子上。
}
}
解释到这里,main函数里面的调用应该也就很明白了吧?
a.hanoi(m,'A','B','C');
把'A'柱子上的m个盘子通过'B'柱子全部移动到'C'上面的步骤。
解释起来很容易,想得多了也就慢慢明白了,最难的是如何设计一个递归出来。这个和数学里面的递推公式很相似(事实上其来源就是递推公式),想必你肯定知道递增函数把? An = An-1 + 5(A0 = 0 );这个条件能够唯一确定一个数列。
那现在你把它写成函数呢?
int A(int n) {
if(n == 0) {
return 0;
} else {
return A(n -1) + 5;
}
}
调用A(n)就能返回An的值。明白?
多想想,多练练,大家都是这么过来的:)祝好运
用JAVA编写购物系统的代码是什么?(急)
算是最简单的吧
package cn.job01;
import java.util.Scanner;
public class Lx07 {
public static void choice() {
System.out.println("登陆菜单 ");
System.out.println("1登陆系统");
System.out.println("2退出");
}
static void choice1() {
System.out.println("购物管理系统客户信息");
System.out.println("1显示所有客户信息");
System.out.println("2添加客户信息");
System.out.println("3修改客户信息");
System.out.println("4查询客户信息");
}
static void choice2() {
System.out.println("购物管理系统真情回馈");
System.out.println("1幸运大放送");
System.out.println("2幸运抽奖");
System.out.println("3生日问候");
}
public static void main(String[] args) {
choice();
Scanner input = new Scanner(System.in);
System.out.println("请输入1or2");
int num = input.nextInt();
switch (num) {
case 1:
System.out.println("主菜单");
System.out.println("1客户信息管理");
System.out.println("2购物结算");
System.out.println("3真情回馈");
System.out.println("4注销");
break;
}
System.out.println("选择输入数字");
int num1 = input.nextInt();
switch (num1) {
case 1:
choice1();
break;
case 2:
System.out.println("购物结算");
break;
case 3:
choice2();
break;
case 4:
choice();
break;
}
}
}
java问题,求高手解决
/**
* 2016年5月24日上午8:21:42
*
* @author 3306 TODO 建立甜品实体类
*
*/
public class SweetMeats {
private String name;// 名称
private String color;// 颜色
public SweetMeats() {
super();
}
public SweetMeats(String name, String color) {
super();
this.name = name;
this.color = color;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
/**
* 2016年5月24日上午8:23:40
*
* @author 3306 TODO 建立蛋糕类
*
*/
public class Cookies extends SweetMeats {
public Cookies() {
super();
// TODO Auto-generated constructor stub
}
public Cookies(String name, String color) {
super(name, color);
// TODO Auto-generated constructor stub
}
}
public class BananaPie extends SweetMeats {
public BananaPie() {
super();
// TODO Auto-generated constructor stub
}
public BananaPie(String name, String color) {
super(name, color);
// TODO Auto-generated constructor stub
}
}
public class PumpkinPie extends SweetMeats {
public PumpkinPie() {
super();
// TODO Auto-generated constructor stub
}
public PumpkinPie(String name, String color) {
super(name, color);
// TODO Auto-generated constructor stub
}
}
/**
* 2016年5月24日上午8:26:26
*
* @author 3306 TODO 唱歌接口
*
*/
public interface Sing {
/**
* 唱歌实现类
*/
public void sing();
}
public abstract class Microwave {
private String name;
private String brand;
private double price;
public Microwave(String name, String brand, double price) {
super();
this.name = name;
this.brand = brand;
this.price = price;
}
public Microwave() {
super();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public abstract void bakeDessert(SweetMeats sweet);
}
public class GeLanShiMicrowave extends Microwave {
public GeLanShiMicrowave() {
super();
// TODO Auto-generated constructor stub
}
public GeLanShiMicrowave(String name, String brand, double price) {
super(name, brand, price);
// TODO Auto-generated constructor stub
}
@Override
public void bakeDessert(SweetMeats sweet) {
if (sweet instanceof Cookies) {// 如果为蛋糕,则不烤
System.out.println("The GelanshiMicrowave don't bake cookies(" + getName() + ")");
} else {
System.out.println("We bake the banana or pumpkin pie for u(" + getName() + ")");
}
}
}
import java.util.Date;
public class MedilMicrowave extends Microwave implements Sing {
public MedilMicrowave() {
super();
// TODO Auto-generated constructor stub
}
public MedilMicrowave(String name, String brand, double price) {
super(name, brand, price);
// TODO Auto-generated constructor stub
}
@Override
public void sing() {
System.out.println("I'm MediMicrowave suck!");
}
@Override
public void bakeDessert(SweetMeats sweet) {
if (sweet instanceof Cookies) {
System.out.println("I don't think we can bake the cookies in my body(" + getName() + ")");
} else {
System.out.println("Let's do this!!!(" + getName() + ")");
sing();
System.out.println(showTime());
}
}
/**
* 获取当前时间
*
* @return Date
*/
public Date showTime() {
return new Date();
}
}
public class Kitchen {
/**
* 香蕉蛋糕
*/
public static SweetMeats buildBananaPie() {
return new BananaPie("banana", "yellow");
}
/**
* 蛋糕
*/
public static SweetMeats buildCookie() {
return new Cookies("cookie", "red");
}
/**
* 南瓜饼
*/
public static SweetMeats buildPumpkinPie() {
return new PumpkinPie("cookie", "red");
}
/**
* medi微波炉
*/
public static Microwave buyMedi() {
return new MedilMicrowave("myidea", "medi1", 300);
}
/**
* Gelan 微波炉
*
*/
public static Microwave buyGelan() {
return new GeLanShiMicrowave("gelan", "gelan1", 800);
}
public static void main(String[] args) {
SweetMeats cookie = buildCookie();
SweetMeats bananaPie = buildBananaPie();
SweetMeats pumpkiePie = buildPumpkinPie();
Microwave medi = buyMedi();
Microwave gelan = buyGelan();
medi.bakeDessert(cookie);
medi.bakeDessert(bananaPie);
medi.bakeDessert(pumpkiePie);
gelan.bakeDessert(cookie);
gelan.bakeDessert(bananaPie);
gelan.bakeDessert(pumpkiePie);
}
}
买蛋糕 pascal语言
平均等待时间最少就是指的总时间最少,和当年一道打水的题很像,应该用的是贪心的策略; 先排序,让需要时间短的先做,因为做的时间短,等待的时间就短咯 type rtype=record
num,data:longint;
end;
var i,j,n:longint;
total:int64;
x:real;
a:array [1..10000] of rtype;
procedure qsort(l,r:longint);
var i,j,mid:longint;
temp:rtype;
begin
i:=l; j:=r;
mid:=a[(i+j) div 2].data;
repeat
while a[i].datamid do inc(i);
while a[j].datamid do dec(j);
if i=j then begin
temp:=a[i];
a[i]:=a[j];
a[j]:=temp;
inc(i);
dec(j);
end;
until ij;
if ir then qsort(i,r);
if lj then qsort(l,j);
end;
begin
assign(input,'water.in');
assign(output,'water.out');
reset(input);
rewrite(output);
readln(n);
for i:=1 to n do
begin
read(a[i].data);
a[i].num:=i;
end;
readln;
qsort(1,n);
for i:=1 to n do
for j:=1 to i-1 do
total:=total+a[j].data;
x:=total/n;
for i:=1 to n do write(a[i].num,' ');
writeln;
writeln(x:0:2);
close(input);
close(output);
end.
上面是排队打水那一题的代码【可以去搜一下就会发现一摸一样的】,希望能帮到你
java生日蛋糕和玫瑰(百合也可)的代码(急需),需送人
用*号打印的生日蛋糕或玫瑰百合?
。。。。println("* * ****");
就这样打出来??
求用java 编写一个把蛋糕平均分成8份的算法...高手们,帮帮忙.谢谢
. 所以只好求助你们的帮忙了 . 谢谢 .. 帮我翻译下吧 . 好麼? Vivian 按照翻译惯例,名字是作为代码使用的,不会按照字面意思翻译的,只能,tIfixW
网站名称:买蛋糕的java代码,java生日蛋糕代码
转载源于:http://scgulin.cn/article/hspsgs.html