首页 > 其他 > 详细

蓝桥杯——大数加法

时间:2019-03-23 21:20:11      阅读:208      评论:0      收藏:0      [点我收藏+]
问题描述
  输入两个正整数a,b,输出a+b的值。
输入格式
  两行,第一行a,第二行b。a和b的长度均小于1000位。
输出格式
  一行,a+b的值。
样例输入
4
2
样例输出
6
#include <iostream.h>
#include <string.h>
#define MAX 1000

void main()
{
    char a[MAX];
    char b[MAX];
    char c[MAX];
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(c,0,sizeof(c));
    cin>>a;
    cin>>b;
    int la,lb;
    la = strlen(a);
    lb = strlen(b);
    int t=0;//进位
    int r;
    int i,j;
    int sum = 0;
    for(i=la-1,j=lb-1;i>=0||j>=0;i--,j--)
    {
        r = (a[i]-0)+(b[j]-0)+t;
        c[sum++] = r%10+0;
        t = r/10;
    }
    if(t>0)
        cout<<t;
    if(la>lb)
    {
        for(i=strlen(a)-1;i>=0;i--)
        {
            cout<<c[i];
        }
    }
    else
    {
        for(i=strlen(a)-1;i>=0;i--)
        {
            cout<<c[i];
        }
    }
    
    cout<<endl;
    
    
}

 

蓝桥杯——大数加法

原文:https://www.cnblogs.com/zkw123/p/10585632.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!