Description
高精度加法,相当于 a+b problem,不用考虑负数。
Input
分两行输入。a,b
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char str1[503]={0};
char str2[503]={0};
int a[503]={0},b[503]={0},c[505]={0};
scanf("%s %s",str1,str2);
int len1=strlen(str1);
int len2=strlen(str2);
for(int i=0;i<len1;i++)
{
a[i]=str1[len1-i-1]-'0';
//cout<<a[i];
}
for(int i=0;i<len2;i++)
{
b[i]=str2[len2-i-1]-'0';
//cout<<b[i];
}
int len3=max(len1,len2)+1;
//cout<<len1<<len2<<len3;
for(int i=0;i<len3;i++)
{
c[i]=c[i]+a[i]+b[i];
c[i+1]=c[i]/10;
c[i]=c[i]%10;
}
if(c[len3-1]==0) len3--;
for(int i=len3-1;i>=0;i--)
printf("%d",c[i]);
}
≤10500a,b≤10500。
Output
输出只有一行,代表 a+b 的值。
Sample 1
Inputcopy | Outputcopy |
---|---|
1 1 | 2 |
Sample 2
Inputcopy | Outputcopy |
---|---|
1001 9099 | 10100 |
Hint
20% 的测试数据,0≤a,b<=10^9;
40%的测试数据,0≤a,b≤10^18。