求两道简单java题目答案,在线等

1,汉诺塔问题:现在有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,现在把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上... 1,汉诺塔问题:现在有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,现在把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方,请编写程序实现该问题。
要求:在main方法中输入盘子的数量。
提示:三个盘子移动的过程见hanio.ppt中的动画演示,程序中盘子的移动过程输出字符串即可,例如,表示将盘子从A移动至C,可有如下输出
A->C
2,用递归方法求解Fibonacci序列,定义如下(如图):

要求:在main方法中输入n的值。
展开
 我来答
star96201
2012-06-27 · TA获得超过1261个赞
知道小有建树答主
回答量:863
采纳率:50%
帮助的人:590万
展开全部
1.
public class HaNuoTa
{
static long s=0;
public static void main(String args[])
{
System.out.println("请输入盘子的数量:");
Scanner s = new Scanner(System.in);
int n = s.nextInt();
System.out.println("移动方案为:" );
hanoi(n, 'a', 'b', 'c');
System.out.println("需要移动次数:"+s);
}
static void hanoi(int n, char a, char b, char c)
{
if (n > 0) {
hanoi(n - 1, a, c, b);
move(a, b);
hanoi(n - 1, c, b, a);
s++;
}
}
static void move(char x, char y)
{
System.out.println(x + "->" + y + "\t");
}
}

2.
public class Fibonacci
{
public static int Fibonacci(int n)
{
if(n==0 || n==1) {
return 1;
} else {
return Fibonacci(n-1)+Fibonacci(n-2);
}
}
public static void main(String args[])
{
System.out.println("请输入n的值:");
Scanner s = new Scanner(System.in);
int n = s.nextInt();
System.out.println(Fibonacci(n));
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式