poj1503 大整数加法

论坛 期权论坛 脚本     
匿名技术用户   2020-12-30 23:10   11   0

题目:
大整数加法,每个整数至多包含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;
}


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP