本人整理并编写高精度四则运算,以函数形式供大家参考
考虑到看此文章者多是初学者,全部以 char 型数组编写
加法
void pplus(char s1[],char s2[]){//加法
int a1[4005],a2[2005];
memset(a1,0,sizeof(a1));
memset(a2,0,sizeof(a2));
int l=min(strlen(s1),strlen(s2));
int l_max=max(strlen(s1),strlen(s2));
for(int i=0;i<strlen(s1);i++){
a1[i]=s1[strlen(s1)-i-1]-'0';
}
for(int i=0;i<strlen(s2);i++){
a2[i]=s2[strlen(s2)-i-1]-'0';
}
int jw=0;
for(int i=0;i<=4005;i++){
a1[i]+=a2[i]+jw;
jw=a1[i]/10;
a1[i]%=10;
}
bool flag=0;
for(int i=l_max;i>=0;i--){
if(a1[i]!=0||i==0) flag=true;
if(flag) cout<<a1[i];
}
}
减法
bool Dayu(char s1[],char s2[]){//判断s1总值是否大于等于s2
int a[2005],b[2005];
if(strlen(s1)>=strlen(s2))