算法-大整数加法

大整数加法

输入:
       112233445566778899 998877665544332211
输出:
       1111111111111111110

#include <iostream>
#include<cstring>
#include<vector>
#include<stdio.h>
#include<queue>
#include<math.h>
#include<stack>
#include<algorithm>
#include<map>
#include<set>
#define MAX 99999999
using namespace std;

int a[1001];
int b[1001];
int main()
{
    
    
    string x,y;
    cin>>x>>y;
    int lenx = x.size();
    int leny = y.size();
    int len = lenx<leny?leny:lenx;
    for(int i = 0;i<lenx;i++)
        a[i] = x[lenx-i-1] - '0';
    for(int i = 0;i<leny;i++)
        b[i] = y[leny-i-1] - '0';
    for(int i = 0;i<len;i++)
    {
    
    
        a[i] += b[i];
        if(a[i] >= 10){
    
    
            a[i+1] += a[i] / 10;
            a[i] %= 10;
        }
    }
    if(a[len]!=0)
        len++;
    int i;
    for(i=len-1;i>=0&&a[i]==0;i--);//00256 应该输出256
    for(;i>=0;i--)
        cout<<a[i];
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43567222/article/details/112849446