import java.util.Arrays;
import java.util.Scanner;
import java.math.*;
public class Nyoj14{
public static BigInteger f(int n)
{
if( n == 1)
{
return BigInteger.valueOf(2);
}
else
{
BigInteger ss = BigInteger.valueOf(3);
BigInteger nn = BigInteger.valueOf(2);
BigInteger e = f(n-1).multiply(ss).add(nn);
return e;
}
}
public static void main(String[] args){
Scanner cin=new Scanner(System.in);
int k,m,n;
while(cin.hasNext()) {
k = cin.nextInt();
BigInteger ans = f(k);
System.out.println(ans);
}
}
}
假设有n个 | 第n-1个 | a | b | c |
第n个 | a | b | ||
第n-1个 | c | b | a | |
第n个 | b | c | ||
第n-1个 | a | b | c | |
由图可以知道,第n 个如果要是从A到C,需要自己移动两步,然后需要第n-1个a-b-c,然后c-b-a,然后a-b-c。所以得到递推公式: f(n) = 3*f(n-1)+2;高中的通项公式。得到an = 3^n-1搞定。