1.汉诺塔代码:
分析:
把n个盘子从1座(相当于第一根柱子)移到3座(相当于第三根柱子):
1) 把1座上(n-1)个盘子先移到2座;
2)把1座上第n个盘子移到3座
3)把2座上的(n-1)个盘子全部移到3座
用hanoi(n,a,b,c)表示为:
1)hanoi(n-1,1,3,2)
2)hanoi(n-1,2,1,3)
public class Hanoi
{
public static void main(String[] args)
{
int n=4;
Hanoi hanoi = new Hanoi();
hanoi.move(n, 'A', 'B', 'C');
}
public void move(int n, char a, char b, char c)
{
if (n == 1)
{
System.out.println("盘 " + n + " 由 " + a + " 移至 " + c);//这道题 递归思想的第三步(最后一步)
}
else
{
move(n - 1, a, c, b);//这道题中递归思想的第一步
System.out.println("盘 " + n + " 由 " + a + " 移至 " + c);
move(n - 1, b, a, c);//这道题中递归思想的第二步(倒数第二步)
}
}
}
结果:
2.斐波那契数
public class Multy{
public static void main (String[] args){
int n=10;
System. out. println(Fib(n)) ;
}
public static int Fib(int m)
{ int ret=1;
if (m>2)
{
ret= Fib (m-1)+Fib (m-2) ;
}
return ret;
}
}
结果:
刚开始接触Java,代码不是很精简,希望大家可以多多指教!