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

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

要求:在main方法中输入n的值。

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));
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答