題目背景
無
題目描述
高精度加法,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;
}