#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
struct bign{
int a[10030];
int len;
bign(){
memset(a,0,sizeof(a));
len=0;
}
};
bign reve(string a)//对输入的数转化为int型,并进行反转运算
{
bign shu;
shu.len=a.length();
for(int i=0;i<a.length();i++)
shu.a[i]=a[a.length()-i-1]-'0';
return shu;
}
bign print(bign a)//输出运算结果
{
for(int i=0;i<a.len;i++)
cout<<a.a[a.len-i-1];
}
bign adds(bign a,bign b)//加法
{
int arry=0;
bign c;
for(int i=0;i<a.len||i<b.len;i++){
int temp=a.a[i]+b.a[i]+arry;
c.a[c.len++]=temp%10;
arry=temp/10;
}
if(arry!=0)
c.a[c.len++]=arry;
return c;
}
int main()
{
string a,b;
cin>>a>>b;
bign a1=reve(a);
bign a2=reve(b);
print(adds(a1,a2));
}
高精度加法
最新推荐文章于 2024-07-19 15:48:03 发布