- /*
- 习题 27:大数运算(1)★★
- 输入:
- 多组测试数据。第一行为n(1<=n<=2e9),其后n行是一个在0到1e1000之间的数,
- 输入的n为0或者遇到EOF时结束程序
- 输出:
- 对每组测试数据里的n个数求和(最后结果不会超出1e100000),输出结果
- 样例输入:
- 2
- 123456789
- 987654321
- 3
- 1111111111111111111
- 2222222222222222222
- 3333333333333333333
- 样例输出:
- 1111111110
- 6666666666666666666
- 难度:easy
- */
- #include<stdio.h>
- #include<string.h>
- #define MAX 100000
- int main()
- {
- char s1[MAX],s[MAX];
- long len1,i,j,tmp;
- long n;
- while(scanf("%d",&n)!=EOF && n!=0){
- memset(s,'0',MAX-1);
- for(i=0;i<n;i++){
- scanf("%s",s1);
- len1=strlen(s1);
- for(j=len1;j>0;j--){
- tmp=s[j] - 48 + s1[len1-j]-48;
- s[j]=tmp+48;
- }
- }
- for(i=0;i<MAX;i++)
- if(s[i]>57){
- s[i+1]+=(s[i]-48)/10;
- s[i]=48 + (s[i]-48)%10;
- }
- i=MAX-1;
- while(i-->=0)
- if(s[i]!='0')break;
- for(;i>0;i--)
- printf("%c",s[i]);
- printf("/n");
- }
- return 0;
- }
大数运算
最新推荐文章于 2025-08-15 16:04:36 发布