【ACM】杭电OJ 2064(汉诺塔III)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2064

思路:

1、将n-1个盘从A移到C f(n-1)次

2、将第n个从A移到B 1次

3、将n-1个盘从C移到A f(n-1)次

4、将第n个从B移到C 1次

5、将n-1个盘从A移到C f(n-1)次

#include
#include
#include 
#include 
using namespace std;

long long a[37];

int main()
{
	a[1]=2;
	for(int i=2;i<=36;i++)
	{
		a[i]=3*a[i-1]+2;
	}
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		printf("%lld\n",a[n]);
	}
	return 0;
}

 

你可能感兴趣的:(ACM)