题目:
这次的问题很简单,就是给你两个正整数A和B,请你帮忙计算A+B的运算结果。有点儿不一样的是,这两个正整数可能会很大噢!
输入格式:
输入包括两行,每行一个正整数,分别代表加数A和B(0<A,B≤1e10086)。
输出格式:
输出仅一行,即A+B的运算结果。
输入样例:
234567899
34344661
输出样例:
268912560
题意分析:
解题思路:
具体算法流程:
实现细节(代码):
#include<bits/stdc++.h>
using namespace std;
string a,b;
int t1,t2,t;
char c[20000],d[20000];
char ans[20000];
int main() {
cin>>a>>b;
t1=a.size();
t2=b.size();
if(t1>=t2) t=t1;
else t=t2;
for(int i=1; i<=t1; i++) {
c[i]=a[t1-i]-48;
}
for(int i=1; i<=t2; i++) {
d[i]=b[t2-i]-48;
}
for(int i=1; i<=t; i++) {
if((c[i]+d[i]+ans[i])>=10) {
ans[i+1]=(ans[i]+c[i]+d[i])/10;
ans[i]=(ans[i]+c[i]+d[i])%10;
} else {
ans[i]+=c[i]+d[i];
}
}
if(ans[t+1]!=0) t++;
for(int i=t; i>=1; i--) {
printf("%d",ans[i]);
}
return 0;
}