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

【题解】大整数加法

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

【题目描述】

求两个不超过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;  
}


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

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

分享给朋友:

相关文章

【题解】黑色联通块

【题解】黑色联通块

【题目描述】输入一个n×n的黑白图像(1表示黑色,0表示白色),任务是统计其中黑色连通块的个数。如果两个黑格子有公共边或者公共顶点,就说它们属于同一个联通块。如下图所示的图形有3个联通块。【输入描述】...

【题解】单词排序

【题目描述】输入一行单词序列,相邻单词之间由一个或者多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写)【输入描述】一行单词序列,最少一个单词,最多100个单词,每个单词长...

【题解】使每位学生都有座位的最少移动次数

【题目描述】一个房间里有 n 个 空闲 座位和 n 名 站着的 学生,房间用一个数轴表示。给你一个长度为 n&...

2021年崂山区程序设计竞赛题(初中组)

2021年崂山区程序设计竞赛题(初中组)(比赛时间90分钟,试题满分300分)题目名称区间和区间位数的个数有序数组保存文件sumdigitarray输入文件名sum.indigit.inarray.i...

【题解】夹角

【题目描述】这次童鞋们面临的问题是这样的:在一个平面内有两个点,求两个点分别和原点的连线的夹角的大小。注:夹角的范围[0,180],两个点不会在圆心出现。【输入描述】输入数据的第一行是一个数据T,表示...

【题解】公路乘车(动态规划)

【题目描述】一个特别的单行街道在每公里处有一个汽车站。顾客根据他们乘坐汽车的公里使来付费。例如下表就是一个费用的单子。   没有一辆车子行驶超过10公里,一个顾客打算行驶n公里(1<...