| 比赛 | 
    NOIP2007普及组(复现) | 
    评测结果 | 
    AAAAAAAAAA | 
    | 题目名称 | 
    Hanoi双塔问题 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    熊笑瞳 | 
    运行时间 | 
    0.024 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    13.66 MiB  | 
    | 提交时间 | 
    2020-02-09 18:14:10 | 
显示代码纯文本
#include<bits/stdc++.h>
using namespace std; 
void input();
void add();
void mul();
void work();
void output();
const int maxx=1000;
int n,a[maxx];
int main()
{
freopen("hanoi.in","r",stdin);
freopen("hanoi.out","w",stdout);
	input();
	work();
	output();
	return 0;
}
void input(){
	scanf("%d",&n);
}
void work(){
	memset(a,0,sizeof(a));
	a[maxx-1]=2;
	for(int i=2;i<=n;i++){
		add();
		mul();
	}
}
void output(){
	bool f=false;
	for(int i=1;i<maxx;i++){
		if(a[i]!=0){
			if(!f)f=true;
			printf("%d",a[i]);
		}
		 else if(f)printf("%d",a[i]);
	}
}
void add(){
	a[maxx-1]++;
	for(int i=maxx-1;i>0;i--){
			a[i-1]+=a[i]/10;
			a[i]%=10;
	} 
}
void mul(){
	for(int i=maxx-1;i>0;i--){
		a[i]*=2;
		
	}
	for(int i=maxx-1;i>0;i--){
		a[i-1]+=a[i]/10;
		a[i]%=10;
	}
}