从最简单的算法理起,高精度
说实话,我认为会考的可能性不大
而且,比较简单(我这样的蒟蒻都能写)
那么,上代码
#include<iostream>
#include<cstdio>
using namespace std;
string aa,bb;//要相加的两个数
int a[100]={0},b[100]={0},c[100]={0};//a,b为相加的数,c为结果
int la,lb,lc=0;//长度
int jw=0;//进位
int main(){
cin>>aa>>bb;
la=aa.length();
lb=bb.length();
for(int i=0;i<la;i++)
a[la-i]=aa[i]-'0';//将位数颠倒后存入,以免无法对齐
for(int i=0;i<lb;i++)
b[lb-i]=bb[i]-'0';
lc=1;
while(lc<=la||lc<=lb){//判断是否加完
c[lc]=a[lc]+b[lc]+jw;//运算
jw=c[lc]/10;
c[lc]=c[lc]%10;//进位
lc++;//算下一位
}
if(jw!=0)//考虑最高位进位情况
c[lc]=jw;
for(int i=lc;i>=1;i--)
cout<<c[i];
cout<<endl;
return 0;
}