汉诺塔 Java 递归(简单明了)
代码:
import java.util.Scanner;
import java.util.prefs.BackingStoreException;
public class 汉诺塔
{
/**
* @param args
*/
public static void main(String[] args) {
// 递归求汉诺塔,A,B,C三个柱子,将A柱子的n个盘子移到C柱子上
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
char A='A';
char B='B';
char C='C';
f(n, A, B, C);
}
//定义方法
public static void f(int n,char A,char B,char C){
if (n==1)
{
System.out.println("把第"+n+"园盘子从"+A+"柱子移到"+C+"柱子");
return;
}
//重复
//借助C柱子把A柱移到B柱
f(n-1, A, C, B);
//中间这一步
System.out.println("把第"+n+"个盘子从"+A+"柱子移到"+C+"柱子");
//借助A柱把B柱的盘子移到C柱
f(n-1, B, A, C);
}
}
本文详细介绍了使用Java实现汉诺塔问题的递归解决方案。通过递归调用,将A柱上的n个盘子移动到C柱,演示了递归算法的简洁性和效率。代码示例清晰地展示了递归函数的定义和调用过程。
5238

被折叠的 条评论
为什么被折叠?



