蓝桥杯——大数加法

问题描述
  输入两个正整数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;
    
    
}

猜你喜欢

转载自www.cnblogs.com/zkw123/p/10585632.html