【Java开源代码栏目提醒】:网学会员,鉴于大家对Java开源代码十分关注,论文会员在此为大家搜集整理了“Ch7_2.java”一文,供大家参考学习!
import java.util.Scanner;
public class Ch7_2
{
static long count; //移动的次数
/*
* 参数n,圆盘数量
* 参数a,起始地圆盘
* 参数b,辅助圆盘
* 参数c,目的地圆盘
*/
static void hanoi(int n,char a,char b,char c) //汉诺塔算法
{
if(n==1)
{
System.out.printf("第%d次移动:\t圆盘从%c棒移动到%c棒\n",++count,a,c);
}
else
{
hanoi(n-1,a,c,b); //递归调用
System.out.printf("第%d次移动:\t圆盘从%c棒移动到%c棒\n",++count,a,c);
hanoi(n-1,b,a,c); //递归调用
}
}
public static void main(String[] args)
{
int n; //圆盘数量
count=0;
System.out.printf("汉诺塔问题求解!\n");
System.out.printf("请输入汉诺塔圆盘的数量:");
Scanner input=new Scanner(System.in);
n=input.nextInt();
hanoi(n,'A','B','C'); //求解
System.out.printf("求解完毕!总共需要%d步移动!\n",count);
}
}
上一篇:
Ch7_10.java
下一篇:
产品定价因素分析MBA论文:以印度移动应用程序定价分析为例