大整数加法
题目描述:
求两个不超过200位的非负整数的和。
输入格式:
有两行,每行是一个不超过200位的非负整数。
输出格式:
一行,即相加后的结果。
样例输入:
22222222222222222222 33333333333333333333
样例输出:
55555555555555555555
#include <bits/stdc++.h> using namespace std; char a[1000],b[1000]; int a1[1000],b1[1000],c[1000]; int main() { cin>>a>>b; int lena=strlen(a),lenb=strlen(b); for(int i=lena-1;i>=0;i--) a1[lena-1-i]=a[i]-'0'; for(int i=lenb-1;i>=0;i--) b1[lenb-1-i]=b[i]-'0'; int m=max(lena,lenb); for(int i=0;i<m;i++) { c[i]+=a1[i]+b1[i]; c[i+1]+=c[i]/10; c[i]%=10; } while(c[m]==0 && m>=1) m--;//去前导0 for(int i=m;i>=0;i--) cout<<c[i]; return 0; }

浙公网安备 33010602011771号