高精度加法
2024-07-07 10:36:52
发布于:广东
4阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
char a1[10005],b1[10005];
int a[105],b[105],c[105];
//两个字符数组用来输入,三个整型数组用来计算
int main(){
cin >> a1 >> b1;//输入
//将数组逆序放置,方便计算进位的情况
int la=strlen(a1),lb=strlen(b1);
for(int i=0;i<la;i++){
a[i]=a1[la-1-i]-'0';
}
for(int i=0;i<lb;i++){
b[i]=b1[lb-1-i]-'0';
}
// 计算
int lc=max(la,lb);
for(int i=0;i<lc;i++){
c[i]+=a[i]+b[i];
if(c[i]>=10){//判断是否进位
c[i+1]++;
c[i]-=10;
}
}
//逆序输出
if(c[lc]) cout << c[lc];//因为只判断了lc-1位,如果有进位可能漏输出,所以特判
for(int i=lc-1;i>=0;i--){
cout << c[i];
}
return 0;
}
这里空空如也
有帮助,赞一个