示范·高精度
2023-04-22 18:03:01
发布于:江苏
17阅读
0回复
0点赞
这道题其实蛮简单的哈,本人在这里就简单发个高精度版的吧(19位以上加法)
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
string s1,s2;
int a[502],b[502],g=0,alen,blen,maxlen;
for(int i=0;i<501;i++){
a[i]=0;
b[i]=0;
}
a[501]=0;
b[501]=0;
cin>>s1>>s2;
if(s1=="0"&&s2=="0"){
cout<<0;
return 0;
}
alen=s1.size();
blen=s2.size();
if(alen>=blen){
maxlen=alen;
}
else{
maxlen=blen;
}
for(int i=0;i<=alen-1;i++){
a[i]=s1[alen-i-1]-48;
}
for(int i=0;i<=blen-1;i++){
b[i]=s2[blen-i-1]-48;
}
for(int i=0;i<=maxlen;i++){
a[i]=a[i]+b[i]+g;
g=a[i]/10;
a[i]=a[i]%10;
}
if(a[alen]+b[blen]>=0) maxlen++;
while(a[maxlen]==0){
maxlen--;
}
for(int i=0;i<=maxlen;i++){
cout<<a[maxlen-i];
}
return 0;
}
这里空空如也
有帮助,赞一个