题目描述
高精度加法,相当于 a+b problem,不用考虑负数。
输入格式
分两行输入。a,b≤。
输出格式
输出只有一行,代表a+b 的值。
输入输出样例
输入 #1
1 1
输出 #1
2
输入 #2
1001 9099
输出 #2
10100
说明/提示
20% 的测试数据,0≤a,b≤;
40% 的测试数据,0≤a,b≤。
AC代码
先看C++代码:
#include<bits/stdc++.h>
using namespace std;
char a[505],b[505];
int x[505],y[505],z[1005];
int lena,lenb,lenc=1;
int main()
{
cin>>a>>b;
lena = strlen(a);
lenb = strlen(b);
int p = 0;
for(int i = 1;i <= lena;i++) //倒序存入数组
{
x[i] = a[lena-i]-'0';
}
for(int i = 1;i <= lenb;i++) //倒序存入数组
{
y[i] = b[lenb-i]-'0';
}
while(lenc <= lena || lenc <= lenb)
{
z[lenc] = x[lenc]+y[lenc]+p; //每一位相加
p = z[lenc]/10; //计算进位
z[lenc] = z[lenc]%10;
lenc++; //位数加1
}
z[lenc] = p;
while(z[lenc] == 0 && lenc > 1) //删除前导0
{
lenc--;
}
for(int i = lenc;i >= 1;i--) //输出
{
cout<<z[i];
}
cout<<endl;
return 0;
}
再来看Python代码:
a=input()
b=input()
a=int(a)
b=int(b)
print(a+b)
测试点信息
C++:
Python:
显而易见, C++ 比 Python 更省时间.