题目背景
无
题目描述
高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b]
输入输出格式
输入格式:
分两行输入a,b<=10^500
输出格式:
输出只有一行,代表A+B的值
输入输出样例
输入样例#1:
1
1
输出样例#1:
2
又是高精,运用加法:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iomanip>
#include<string>
#include<algorithm>
#include<cstdlib>
using namespace std;
int main()
{
char a1[],b1[];
int a[],b[],c[],lena,lenb,lenc,i,x;
memset(a,,sizeof(a));
memset(b,,sizeof(b));
memset(c,,sizeof(c));
scanf("%s",a1);
scanf("%s",b1);
lena=strlen(a1);
lenb=strlen(b1);
for(i=;i<=lena-;i++)
{
a[lena-i]=a1[i]-'';
}
for(i=;i<=lenb-;i++)
{
b[lenb-i]=b1[i]-'';
}
lenc=;
x=;
while(lenc<=lena||lenc<=lenb)
{
c[lenc]=a[lenc]+b[lenc]+x;
x=c[lenc]/;
c[lenc]%=;
lenc++;
}
c[lenc]=x;
if(c[lenc]==)//将多余的0删除
lenc--;
for(i=lenc;i>=;i--)
cout<<c[i];
cout<<endl;
return ;
}
这里的进位仅有一,相对容易理解。