P1601 A+B Problem(高精)——高精度加法

题目描述

高精度加法,相当于 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]);
	}
}
posted @ 2024-12-29 20:17  xiins  阅读(4)  评论(0编辑  收藏  举报