现充|junyu33

题解 P1601 【A+B Problem(高精)】

尝试挑战c++最短代码(自学的,没有借鉴)

#include <bits/stdc++.h>
using namespace std;
char a[600], b[600]; int sum[600];
int main()
{
	int max,min;
	cin >> a >> b;
	int stra = strlen(a);
	int strb = strlen(b);
	if (stra >= strb) max = stra;
	else max=strb;//确定长度长的
	if (stra < strb) min = stra;
	else min=strb;//确定长度短的
	for (int i = 0;i<=max-1; i++)
	{
		if (min==strb&&i>=min) sum[599 - i] += int(a[stra - i - 1] - '0');
		if(min==stra&&i>=min) sum[599 - i] += int(b[strb - i - 1] - '0');// 把长度长的直接扔上去
		if(i<min) sum[599 - i] += int(a[stra - i - 1] - '0') + int(b[strb - i - 1] - '0');//一位一位地加
		if (sum[599 - i] > 9) { sum[599 - i] = sum[599 - i] - 10; sum[598 - i]++; }//进位
	}
	if (sum[599 - max] != 0) cout << sum[599 - max];//最高位判定
	for (int i = 600-max; i <= 599; i++) cout << sum[i];//按位输出
	return 0;
}