HDU1995汉诺塔

 HDU1995汉诺塔

s=s1+s2+s3.....sn;   总移动次数=第一个盘子的移动次数+第二个盘子的移动次数+...+第n个盘子的移动次数
如总共有n个盘子,第k个盘子的移动次数   s(k)=2^(n-k);

//递归
#include<stdio.h>
long long int han(int n)
{
	if(n==0)
	return 1;
	return 2*han(n-1);
}
int main()
{
	int t,n,k;
	while(scanf("%d",&t)!=EOF)
	{
		while(t--)
		{
			scanf("%d%d",&n,&k);
			long long int sum=han(n-k);
			printf("%lld\n",sum);
		}
	}
return 0;
}

猜你喜欢

转载自blog.csdn.net/tingtingyuan/article/details/81428059