给定A,B,C三根足够长的细柱,在A柱上放有2n个中间有空的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形)。现要将这些国盘移到C柱上,在移动过程中可放在B柱上暂存。

Hanoi双塔问题(hanoi)_java

一眼
ans=2(2n−1)

import java.util.*;
import java.lang.*;
import java.io.*;
import java.math.*;

/* Name of the class has to be "Main" only if the class is public. */
public class Main{

public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
Scanner cin = new Scanner (new BufferedInputStream(System.in));
int a;
a = cin.nextInt();
BigInteger ans=new BigInteger("1"),b = new BigInteger("2");
for(int i=1;i<=a;i++) ans=ans.multiply(b);
ans=ans.subtract(BigInteger.ONE);
ans=ans.multiply(b);
System.out.println(ans);

}
}

最近mac java 出问题,只好用在线的编译器了