题目背景
无
题目描述
高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b]
输入格式
分两行输入a,b<=10^500
输出格式
输出只有一行,代表A+B的值
输入输出样例
输入
1
1
输出
2
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[222]={0},b[222]={0},c[444]={0};
string str1,str2;
cin>>str1;
cin>>str2;
int lena,lenb,lenc;
lena=str1.length();
lenb=str2.length();
//1.将两个字符串倒序
for(int i=0;i<lena;++i)
a[lena-i]=str1[i]-'0';
for(int i=0;i<lenb;++i)
b[lenb-i]=str2[i]-'0';
//2.将两个字符串逐位相加
int len=1,temp=0,forward=0;
while(len<=lena+lenb){
temp=a[len]+b[len]+forward;
c[len]=temp%10;
forward=temp/10;
len++;
}
int index=0;
int flag=1;
for(int i=lena+lenb;i>0;i--){
if(c[i]){
index=i;
flag=0;
break;
}
}
if(flag){
cout<<0<<endl;
return 0;
}
for(int i=index;i>0;i--)
cout<<c[i];
cout<<endl;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[1000]={0},b[1000]={0},c[1000]={0};
string str1,str2;
cin>>str1;
cin>>str2;
int lena,lenb,lenc;
lena=str1.length();
lenb=str2.length();
//1.将两个字符串倒序
for(int i=0;i<lena;++i)
a[lena-i]=str1[i]-'0';
for(int i=0;i<lenb;++i)
b[lenb-i]=str2[i]-'0';
//2.将两个字符串逐位相加
int len=1,temp=0,forward=0;
while(len<=lena+lenb){
temp=a[len]+b[len]+forward;
c[len]=temp%10;
forward=temp/10;
len++;
}
int index=0;
int flag=1;
for(int i=lena+lenb;i>0;i--){
if(c[i]){
index=i;
flag=0;
break;
}
}
if(flag){
cout<<0<<endl;
return 0;
}
for(int i=index;i>0;i--)
cout<<c[i];
cout<<endl;
return 0;
}