题目: 大整数加法,每个整数至多包含100个数字,最多100个整数相加,计算并输出结果。 输入: 最多输入100行数据,每行输入一个正整数,输入0结束输入。 输出: 输出所有正整数累加的结果。 注意输入01111111的情况。 代码如下
#include<iostream>
using namespace std;
#include<cstring>
#include<cstdio>
int main(){
// freopen("1.txt","r",stdin);
char a[110];
int s[110]={0},la,ls=0;
while(cin>>a){
la=strlen(a)-1;
if(a[0]=='0'&&la==0) break;
ls=0;
for(int i=la;i>=0;i--)
s[ls++]+=(a[i]-'0');
}
for(int i=109;i>=0;i--)
if(s[i]!=0){
ls=i;
break;
}
int k=0;
while(k<=ls){
if(s[k]>=10){
s[k+1]+=s[k]/10;
s[k]%=10;
}
k++;
}
while(s[ls+1]!=0){
ls++;
if(s[ls-1]>10){
s[ls]+=s[ls-1]/10;
s[ls-1]%=10;
}
}
for(int i=ls;i>=0;i--)
cout<<s[i];
cout<<endl;
}
|