打完游戏,头脑晕晕的...又去刷作业题,这道是高精度加法,挺水的,不多说了...明儿把最后一道1028刷了就完工了oh yeah~ 链接: http://soj.me/1029 // source code of submission 628265, Zhongshan University Online Judge System #include<iostream> #include<string> using namespace std; string adult,unadult[10]; string add(string x,string y) { string tmp1,tmp2,n; int dif=x.size()-y.size(); if(dif>=0) { for(int i=0;i<dif;++i) tmp1.push_back('0'); tmp1+=y; tmp2=x; } else { for(int i=0;i<(dif*-1);++i) tmp1.push_back('0'); tmp1+=x; tmp2=y; } int jin=0; for(int i=tmp1.size()-1;i>=0;--i) { int a,b; a=tmp1[i]-48; b=tmp2[i]-48; tmp1[i]=(a+b+jin)%10+48; jin=(a+b+jin)/10; } if(jin==1) { tmp1="1"+tmp1; } return tmp1; } int main() { int m,d; while(cin>>m>>d) { if(m==0&&d==0) return 0; adult="1"; for(int i=0;i<10;++i) unadult[i]="0"; for(int i=0;i<d;++i) { adult=add(adult,unadult[m-1]); for(int j=m-1;j>=1;--j) unadult[j]=unadult[j-1]; unadult[0]=adult; } string ans="0"; for(int i=0;i<m;++i) ans=add(ans,unadult[i]); ans=add(ans,adult); cout<<ans<<endl; } return 0; }