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);
}
}
汉诺塔的实现
原文作者: 汉诺塔问题
原文地址: https://blog.csdn.net/ly__snow/article/details/50864943
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/ly__snow/article/details/50864943
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。