wikioi 3116 高精度练习之加法
给出两个正整数A和B,计算A+B的值。保证A和B的位数不超过500位。
读入两个用空格隔开的正整数
输出A+B的值
3 12
15
两个正整数的位数不超过500位
下面三种方法有细微的差别:
第一种方法:顺序读入字符串:#include <iostream>#include <cstring>using namespace std;int main(){ char x[555],y[555]; int a[555]={0},b[555]={0},c[555]={0}; cin >> x >> y; int len_x = strlen(x); int len_y = strlen(y); for(int k=0; k<len_x; k++) { a[k]=x[len_x-1-k]-'0'; } for(int k=0; k<len_y; k++) { b[k]=y[len_y-1-k]-'0'; } int len_max = len_x>len_y?len_x:len_y; for(int i=0; i<len_max; i++) { c[i]=a[i]+b[i]; } for(int i=0; i<len_max; i++) { if(c[i]>=10) { c[i+1]++; c[i] -= 10; } } if(c[len_max]==1) cout << 1; for(int i=len_max-1; i>=0; i--) cout << c[i]; return 0;}