本文主要是介绍A+B problem 高精,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
高精度加法,相当于 a+b problem,不用考虑负数。
输入格式
分两行输入。a,b≤10500。
输出格式
输出只有一行,代表 a+b 的值。
输入输出样例
输入 #1
1 1
输出 #1
2
输入 #2
1001 9099
输出 #2
10100
说明/提示
20% 的测试数据,0≤a,b≤109;
40% 的测试数据,0≤a,b≤1018。
解
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;int main()
{char a1[10000], a2[10000];int a[10000], b[10000], c[10000];//存储相加结果int len_a, len_b, len_c=1, x, i;memset(a, 0, sizeof(a));memset(a, 0, sizeof(b));memset(a, 0, sizeof(c));cin >> a1 >> a2;//输入两个加数123 4567len_a = strlen(a1); len_b = strlen(a2);//3 4for (i = 0; i < len_a; i++)a[len_a - i] = a1[i] - '0';//321for (i = 0; i < len_b; i++)b[len_b - i] = a2[i] - '0';//7654x = 0;while (len_c <= len_a || len_c <= len_b)//987 675{c[len_c] = a[len_c] + b[len_c] + x;//5 6 3x = c[len_c] / 10;//1 1 1c[len_c] %= 10;len_c++;//5631}c[len_c] = x;if (c[len_c] == 0)len_c--;for (int i = len_c; i >= 1; i--)cout << c[i];return 0;
}
这篇关于A+B problem 高精的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!