题目背景
无
题目描述
高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b]
输入输出格式
输入格式:
分两行输入a,b<=10^500
输出格式:
输出只有一行,代表A+B的值
输入输出样例
输入样例#1: 复制
1
1
输出样例#1: 复制
2
思路:无
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int l1,l2; char a[510],b[510]; int num1[510],num2[510],ans[501]; void add(){ ans[0]=max(num1[0],num2[0]); for(int i=1;i<=num1[0];i++) ans[i]=num1[i]; for(int i=1;i<=num2[0];i++) if(ans[i]+num2[i]>=10){ ans[i+1]+=1; ans[i]=(ans[i]+num2[i])%10; } else ans[i]+=num2[i]; if(ans[ans[0]+1]) ans[0]++; } int main(){ scanf("%s",a);scanf("%s",b); num1[0]=strlen(a),num2[0]=strlen(b); for(int i=num1[0]-1;i>=0;i--) num1[++l1]=a[i]-'0'; for(int i=num2[0]-1;i>=0;i--) num2[++l2]=b[i]-'0'; add(); for(int i=ans[0];i>=1;i--) cout<<ans[i]; }