3116 高精度练习之加法
时间限制: 1 s
空间限制: 128000 KB
题目等级 : 黄金 Gold
题目描述 Description
给出两个正整数A和B,计算A+B的值。保证A和B的位数不超过500位。
输入描述 Input Description
读入两个用空格隔开的正整数
输出描述 Output Description
输出A+B的值
样例输入 Sample Input
3 12
样例输出 Sample Output
15
数据范围及提示 Data Size & Hint
两个正整数的位数不超过500位
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; char m[1001],n[1001]; int a[1001],b[1001],c[1001]; int main() { scanf("%s",&m); scanf("%s",&n); int lm=strlen(m); int ln=strlen(n); for(int i=0;i<lm;i++) { a[i]=m[lm-i-1]-‘0‘; } for(int i=0;i<ln;i++) { b[i]=n[ln-i-1]-‘0‘; } int x=0; int lc=0; while(lc<=lm||lc<=ln) { c[lc]=a[lc]+b[lc]+x; x=c[lc]/10; c[lc]%=10; lc++; } c[lc]=x; while(c[lc]==0&&lc>=1) { lc--; } for(int i=lc;i>=0;i--) { cout<<c[i]; } }
时间: 2024-08-09 06:20:43