比赛 NOIP2007普及组(复现) 评测结果 C
题目名称 Hanoi双塔问题 最终得分 0
用户昵称 周旨兵 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2020-02-09 18:43:30
显示代码纯文本
#include<cstring>   
#include<iostream>
using namespace std;
int f[300],n;
void oper(){
    int i;
    for (i=1;i<=f[0];i++) f[i]*=2;      //按位×2
    f[1]+=2;                            //最低位+2
    for (i=1;i<=f[0];i++){              //统一处理进位
        f[i+1]+=f[i]/10;
        f[i]%=10;
    }
    if (f[f[0]+1]!=0) f[0]++;           //确定位数
}
int main(){
	freopen("hanoi.in","r",stdin);
	freopen("hanoi.out","w",stdout);
    cin>>n;
    memset(f,0,sizeof(f));              //这行不需要,全局的会自动初始化为0
    f[0]=1; f[1]=2;                     //f初始化为a1=2;
    for(int i=2;i<=n;i++)
        oper();
    for(int i=f[0];i>=1;i--)            //输出结果
        cout<<f[i];
    cout<<endl;
    return 0;
}