ACM1503 http://acm.pku.cn/JudgeOnline/problem?id=1503

#include <iostream>
using namespace std;
int main ()
{
char a[200][200]={'0'};
int b[200]={0};
int c[200]={0};
int mm=0;
int j=0;
int i=0;
for (;;i++)
{
cin>>a[i];
b[i]=strlen(a[i])-1;
if (b[i]>mm) mm=b[i];      
if (a[i][0]=='0'&&b[i]==0)
break;
}
int carry =0;
for (int p=mm;p>=0;p--)
{
int sum=0;
for (int k=0;k<i;k++)
{
if(b[k]>=0)
      sum=sum+(a[k][b[k]]-'0');
else
   sum=sum+0;
     b[k]--;
}
   c[p]=(sum+carry)%10;
carry=(sum+carry)/10;

}
if(carry!=0)
{
cout<<carry;
for (int nn=0;nn<=mm;nn++)
{
   cout <<c[nn];
}
cout<<endl;

}
else 
{
for (int nn=0;nn<=mm;nn++)
{
   cout <<c[nn];
}
cout<<endl;
}
return 0;
}

posted on 2011-05-06 19:51  _Clarence  阅读(95)  评论(0编辑  收藏  举报

导航