牛客大数加法-A+B

题目描述
实现一个加法器,使其能够输出a+b的值。
输入描述:
输入包括两个数a和b,其中a和b的位数不超过1000位。
输出描述:
可能有多组测试数据,对于每组数据,
输出a+b的值。
示例1
输入
2 6
10000000000000000000 10000000000000000000000000000000
输出
8
10000000000010000000000000000000

注意:此处用sring比较好操作

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
inline int read() {int x=0,f=1;char c=getchar();while(c!='-'&&(c<'0'||c>'9'))c=getchar();if(c=='-')f=-1,c=getchar();while(c>='0'&&c<='9')x=x*10+c-'0',c=getchar();return f*x;}
typedef long long ll;
const int maxn = 1e9+10;
string str1,str2;
int main()
{
    while(cin>>str1>>str2)
    {
        string str;
        int len1=str1.length();
        int len2=str2.length();
        if(len1<len2){
            for(int i=1;i<=len2-len1;i++){
                str1="0"+str1;
            }
        }
        else{
            for(int i=1;i<=len1-len2;i++){
                str2="0"+str2;
            }
        }
        len1=str1.length();
        int c=0;
        int temp;
        for(int i=len1-1;i>=0;i--){
            temp=str1[i]-'0'+str2[i]-'0'+c;
            c=temp/10;
            temp%=10;
            str=char(temp+'0')+str;
        }
        if(c!=0){
            str=char(c+'0')+str;
        }
        cout<<str<<endl;
    }
    return 0;

}
原文地址:https://www.cnblogs.com/lipu123/p/12150338.html