题目描述
高精度加法,相当于 a+b problem,不用考虑负数。
输入格式
分两行输入。\(a,b \leq 10^{500}\)。
输出格式
输出只有一行,代表 \(a+b\) 的值。
样例 #1
样例输入 #1
1
1
样例输出 #1
2
样例 #2
样例输入 #2
1001
9099
样例输出 #2
10100
提示
\(20\%\) 的测试数据,\(0\le a,b \le10^9\);
\(40\%\) 的测试数据,\(0\le a,b \le10^{18}\)。
我的作答
#include <stdio.h>
#include <string.h>
int main() {char aa[520];char bb[520];int a[520]={0};int b[520]={0};int c[520]={0};scanf("%s",aa);scanf("%s",bb);for (int i=0;i<strlen(aa);i++) {a[i]=aa[strlen(aa)-i-1]-'0';}for (int i=0;i<strlen(bb);i++) {b[i]=bb[strlen(bb)-i-1]-'0';}int length=strlen(aa)>strlen(bb)?strlen(aa):strlen(bb);int carry=0;for (int i=0;i<strlen(aa)||i<strlen(bb);i++) {int temp = a[i]+b[i] + carry;c[i] = temp%10;if (temp>=10) carry=1;else carry=0;}if (carry) {c[length] = carry;length++;}for (int i=length-1;i>=0;i--) {printf("%d",c[i]);}
}