您的位置:首页 > 其它

汉诺塔的实现

2016-03-12 12:55 316 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/ly__snow/article/details/50864943
package 历届试题;

import java.math.BigInteger;

public class 汉诺塔 {
static long s=0;
public static void hanoi(int n,int from,int depend,int to)
{
if(n>0)
{
hanoi(n-1,from,to,depend);
hanoi(n-1,depend,from,depend);
s++;
}
}
public static void main(String[] args) {
int n = 10;
System.out.println("圆盘个数\t移动次数");
for(int i=1;i<=n;i++){
s = 0;
hanoi(i,'a','b','c');
System.out.println(i+"  ->\t"+s);
}
System.out.println("由上结果可找到规律为:\n移动次数 = 2的n次方-1(n为圆盘个数)");
System.out.println("64个圆盘的移动次数为:");
BigInteger bi = new BigInteger("2");
bi = bi.pow(64).subtract(BigInteger.ONE);
System.out.println(bi);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: