Sicily 1485. Hanoi双塔问题

来源:互联网 发布:下软件赚钱的软件ios 编辑:程序博客网 时间:2024/05/21 23:38

http://soj.me/1485

易得公式 2^(n+1) - 2 ,本想直接用模板,一想很久没写高精度,练练手,果然生疏了....o(╯□╰)o


#include <iostream>#include <cstring>using namespace std;int main(){int n,ans[100],len;bool flag = true;while(cin>>n){if(!flag) cout<<endl;flag = false;memset(ans,0,sizeof(ans));ans[0] = 1;len = 1;for(int i=0;i < n+1;++i){//考虑清楚顺序,先在每一个数位上乘以2,然后再考虑是否进位,一开始放在同一个循环里,结果一团糟for(int j = 0;j < len;++j)ans[j] *= 2;for(int j = 0;j < len;++j){if(ans[j] > 9) {ans[j + 1] += ans[j]/10;ans[j] %= 10;}}if(ans[len]) len++;}ans[0] -= 2;while(!ans[len]) len --;for(int i = len;i >= 0;i--)cout<<ans[i];cout<<endl;}return 0;}


原创粉丝点击