Java汉诺塔
import java.math.BigInteger;
/**
* 三个柱子,圆盘从上到下按大小顺序叠放在第一个柱子 将圆盘从第一个柱子取下,按顺序放到第二根柱子。第三根柱子作为缓冲
* 小圆盘上不能放大圆盘,三个柱子之间只能移动一个圆盘
*
* 要求:精确计算出移动到第二个柱子,需要移动多少次 例如:2个圆盘要3次 3个圆盘要7次 问64个圆盘移动多少次
*分析:汉诺塔的移动次数公式为:2^n-1
*/
public class 汉诺塔 {
public static void main(String[] args) {
BigInteger bg = new BigInteger("2");
BigInteger pow = bg.pow(64); //2的64次
BigInteger subtract = pow.subtract(new BigInteger("1"));
System.out.println(subtract);
}
}