poj1503 大整数加法

2017年02月26日 9点热度 0人点赞 0条评论

题目:
    大整数加法,每个整数至多包含100个数字,最多100个整数相加,计算并输出结果。
输入:
     最多输入100行数据,每行输入一个正整数,输入0结束输入。
输出:
    输出所有正整数累加的结果。
注意输入01111111的情况。
代码如下

#include
using namespace std;
#include
#include
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<
未经允许不得转载!poj1503 大整数加法

update

纸上得来终觉浅, 绝知此事须躬行。