高精度减法C++优化版
时间: 2023-07-05 19:15:52 浏览: 122
以下是一个优化版的C++高精度减法实现:
```cpp
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e6+5;
int a[MAXN],b[MAXN],c[MAXN];
char sa[MAXN],sb[MAXN];
int main(){
scanf("%s%s",sa,sb);
int la=strlen(sa),lb=strlen(sb);
for(int i=0;i<la;i++) a[i]=sa[la-i-1]-'0';
for(int i=0;i<lb;i++) b[i]=sb[lb-i-1]-'0';
int len=max(la,lb);
for(int i=0;i<len;i++){
c[i]+=a[i]-b[i];
if(c[i]<0){
c[i]+=10;
c[i+1]--;
}
}
while(len>1 && !c[len-1]) len--;
for(int i=len-1;i>=0;i--) printf("%d",c[i]);
return 0;
}
```
这个实现与前一个实现的区别在于使用了快读和快输,以及数组初始化(memset)和数组清零(memset)等优化方式。这些优化可以提高程序的运行效率。
阅读全文