比赛 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;
	}
}