A + B
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 17 Accepted Submission(s) : 6
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
Input
输入分为两行
第一行为一个整数n(1 <= n <= 10),表示需要进行加和的整数的个数;
第二行为n个整数ai (i <= n ),以空格隔开,每个数最多有1000位。
输入到文件结尾(EOF)。
第一行为一个整数n(1 <= n <= 10),表示需要进行加和的整数的个数;
第二行为n个整数ai (i <= n ),以空格隔开,每个数最多有1000位。
输入到文件结尾(EOF)。
Output
对每组输入,输出单独为一行,表示输入的n个数的总和。
Sample Input
2 1 1
Sample Output
2
简单的a+b却调了很久。。。错在39行的循环控制条件。。。可能出现sum[-1]
#include<stdio.h>
#include<string.h>
int main()
{
char a[1003];
int sum[1005];
int n;
int len;
int k;
int Max=0;
int j;
// freopen("3.txt","r",stdin);
// freopen("2.txt","w",stdout);
while(scanf("%d",&n)!=EOF&&n>=1&&n<=10)
{
memset(sum,0,sizeof(sum));
while(n--)
{
memset(a,'\0',sizeof(a));
scanf("%s",&a);
len=strlen(a);
if(len>Max)
Max=len;
k=0;
while(len)
sum[k++]+=a[--len]-48;
for(k=0;k<=Max;k++)
{
if(sum[k]>9)
{
sum[k]-=10;
sum[k+1]++;
}
}
}
for(j=Max;j>0;j--)
if(sum[j])break;
for(int i=j;i>0;i--)
printf("%d",sum[i]);
printf("%d\n",sum[i]);
}
}