| 比赛 | 
    NOIP2007普及组(复现) | 
    评测结果 | 
    AAAAAAAAAA | 
    | 题目名称 | 
    Hanoi双塔问题 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    夜莺 | 
    运行时间 | 
    0.004 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    4.40 MiB  | 
    | 提交时间 | 
    2020-02-09 15:03:34 | 
显示代码纯文本
#include<cstdio>
using namespace std;
int n,ans[62]={0,1},Long;
int main(){
	freopen("hanoi.in","r",stdin);
	freopen("hanoi.out","w",stdout);
	scanf("%d",&n);
	n++;
	int mod[4]={3,3,3,4},t=0;
	for(int i=1;i<=n;i+=mod[t++],t%=4)
		Long++;
	for(int i=1;i<=n;i++){
		int jin=0;
		for(int j=1;j<=Long;j++){
			ans[j]*=2;
			ans[j]+=jin;
			jin=ans[j]/10;
			ans[j]%=10;
		}
	}
	ans[1]-=2;
	while(ans[Long]==0)Long--;
	for(int i=Long;i>=1;i--)
		printf("%d",ans[i]);
	return 0;
}