Problem Address:http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1213
简单的大数加。正整数的。
写少一个句子,WA了一次。
贴代码:
#include <iostream>
using namespace std;
int sumlen;
void add(char s[], int sum[])
{
int len=strlen(s);
int i,j,p=0;
for (i=len-1,j=0; i>=0; i--,j++)
{
sum[j] += s[i]-'0'+p;
if (sum[j]>9)
{
sum[j] = sum[j]%10;
p = 1;
}
else
{
p = 0;
}
}
while(p==1)
{
sum[j]++;
if (sum[j]>9)
{
sum[j] = sum[j]%10;
p = 1;
}
else
{
p = 0;
}
j++;
}
if (j>sumlen) sumlen = j;
}
int main()
{
char s[201];
int sum[210];
int n,i;
while(scanf("%d", &n)!=EOF)
{
if (n==0) break;
memset(sum, 0, sizeof(sum));
sumlen = 0;
for (i=0; i<n; i++)
{
scanf("%s", s);
add(s, sum);
}
for (i=sumlen-1; i>=0; i--) printf("%d", sum[i]);
printf("/n");
}
return 0;
}