题目背景
无
题目描述
高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b]
输入输出格式
输入格式:
分两行输入a,b<=10^500
输出格式:
输出只有一行,代表A+B的值
输入输出样例
输出样例#1:
2
又是高精,运用加法:
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<iomanip> #include<string> #include<algorithm> #include<cstdlib> using namespace std; int main() { char a1[500],b1[500]; int a[500],b[500],c[500],lena,lenb,lenc,i,x; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); scanf("%s",a1); scanf("%s",b1); lena=strlen(a1); lenb=strlen(b1); for(i=0;i<=lena-1;i++) { a[lena-i]=a1[i]-'0'; } for(i=0;i<=lenb-1;i++) { b[lenb-i]=b1[i]-'0'; } lenc=1; x=0; while(lenc<=lena||lenc<=lenb) { c[lenc]=a[lenc]+b[lenc]+x; x=c[lenc]/10; c[lenc]%=10; lenc++; } c[lenc]=x; if(c[lenc]==0)//将多余的0删除 lenc--; for(i=lenc;i>=1;i--) cout<<c[i]; cout<<endl; return 0; }
这里的进位仅有一,相对容易理解。