高精度加高精度
【问题描述】
有两个位数在200以内的高精度数a和b,请编程求出a与b之和。
输入:两行,第一行为a,第二行为b。
输出:一行,表示a与b之和C。
注意:a与b的位数不一定相同。
【输入样例】
省略
【输出样例】
省略
#include<iostream> #include<cstring> using namespace std; int main() { char a[201], b[201]; int a2[201]={}, b2[201]={}, c, c2[202]={}, d2[205]={}; cin >> a >> b; int lena = strlen(a), lenb = strlen(b); for(int i=0; i<=lena-1; i++) a2[lena-i] = a[i] - 48; // 下标从1开始的。 for(int i=0; i<=lenb-1; i++) b2[lenb-i] = b[i] - 48; // 下标从1开始的。 // 高精度加法 int maxlen = max(lena, lenb), jw=0, i; for(i=1; i<=maxlen; i++) { int t = a2[i] + b2[i] + jw; jw = t/10; c2[i] = t%10; } if(jw) c2[i] = jw; else i--; for(int j=i; j>=1; j--) cout << c2[j]; return 0; }

浙公网安备 33010602011771号