汉诺塔II

思路:找规律,你首先要明白n柱汉诺塔问题,然后进行列数找规律求解。

//开始加两个2,然后3个4,4个8,5个16...
//1 3 5 9 13 17 25 33 41 49 65 81

#include<stdio.h>
#include<math.h>
int main()
{
	int n;
	int i,j;
	int a[100000];
	a[0]=1;
	int k=0;
	int sum=1;
	for(i=2;i<=64;i++)
	{
		for(j=1;j<=i;j++)
		{
			sum=sum+pow(2.0,i-1);
			a[++k]=sum;
		}
	}
	while(scanf("%d",&n)!=EOF)
	{
		printf("%d\n",a[n-1]);
	}
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务