当前位置:首页 > 题解目录 > 正文内容

【题解】大整数加法

亿万年的星光5年前 (2021-05-02)题解目录20373

【题目描述】

求两个不超过200位的非负整数的和。

【输入】

有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。

【输出】

一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。

【输入样例】

22222222222222222222

33333333333333333333

【输出样例】

55555555555555555555

【题目分析】



【参考答案】

#include<iostream>  
#include<cstring>  
#include<string>  
using namespace std;  
int main()  
{  
    string str1,str2;  
    int a[210],b[210],c[210];  
    int len1,len2;  
    int i;  
  
    cin>>str1;  
    cin>>str2;  
    len1=str1.length();  
    len2=str2.length();  
  
    /*补0工作,保证两个字符串相同*/  
    if(len1<len2)  
        for(i=1;i<=len2-len1;i++)  
           str1="0"+str1;  
    else  
        for(i=1;i<=len1-len2;i++)  
           str2="0"+str2;  
  
    len1=str1.length();  
    len2=str2.length();  
  
    for(i=0;i<=len1-1;i++)//加数str1存入数组a  
        a[len1-i]=str1[i]-'0';  
    for(i=0;i<=len2-1;i++)//加数str2存入数组b  
        b[len2-i]=str2[i]-'0';  
  
    int x=0;  
    int lenc=1;  
    while(  (lenc<=len1)  ||  (lenc<=len2)  )  
    {  
        c[lenc]=a[lenc]+b[lenc]+x;//第i位相加并加上次的进位  
        x=c[lenc]/10;//向高位进位  
        c[lenc]%=10;//存储第i位的值  
        lenc++;//位置下标  
    }  
  
    /*处理最高进位*/  
    c[lenc]=x;  
    while(c[lenc]==0)  
        lenc--;  
  
    for(i=lenc;i>0;i--)//倒序输出  
        cout<<c[i];  
    cout<<endl;  
  
    return 0;  
}


    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    【题解】零花钱

    零花钱(money.cpp) 【问题描述】 商店里有一件玩具,今天你偶然得知:这件玩具在后⾯的n天里每天的定价(价格可能每天都会改 变),你买了这件玩具后可以以当天的价格卖给商店,...

    【题解】求逆序对个数

    【题目描述】有一实数序列A[1]、A[2] 、A[3] 、……A[n-1] 、A[n] (n<10000),若i<j,并且A[i]>A[j],则称A[i]与A[j]构成了一个逆序对,...

    【题解】2001-T1 数的计数

    【题目描述】我们要求找出具有下列性质数的个数(包含输入的自然数nn):先输入一个自然数n(n≤1000)n(n≤1000),然后对此自然数按照如下方法进行处理:1.不作任何处理;2.在它的左边加上一个...

    【题解】金银岛

    题目描述某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属。但是他只带着一个口袋,口袋至多只能装重量为w的物品。岛上金属有s个种...

    【题解】特殊的质数肋骨

    【题目描述】农民约翰母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组...

    公路(road)

    公路(road)

    【题目描述】小苞准备开着车沿着公路自驾。公路上一共有n个站点,编号为从1 到n。其中站点i与站点i+1 的距离为vi公里。公路上每个站点都可以加油,编号为i 的站点一升油的价格为a...