1260: 【基础】【P1601】高精度加法
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:99
解决:33
题目描述
计算a+b的值,a,b皆为不超过500位的正整数。
输入
两个正整数,每行一个
输出
一个数,代表两个整数的和
样例输入 复制
111111111111111111111111111111111111
222222222222222222222222222222222222
样例输出 复制
333333333333333333333333333333333333
提示
#include<bits/stdc++.h> using namespace std; #define maxn 520 int a[maxn],b[maxn],c[maxn]; int main(){ string A,B; cin>>A>>B; int lena,lenb,len; lena=A.length(); lenb=B.length(); len=max(lena,lenb); for (int i=A.length()-1;i>=0;i--) a[lena-i]=A[i]-'0'; for (int i=B.length()-1;i>=0;i--) b[lenb-i]=B[i]-'0'; for (int i=1;i<=len;i++) { c[i]+=a[i]+b[i]; c[i+1]=c[i]/10; //模拟进位 c[i]=c[i]%10; } if (c[len+1]>0) len++; //最后进位可能会导致位数增加 for (int i=len;i>=1;i--) cout<<c[i]; return 0; }