高精度除法c++代码
时间: 2023-10-26 16:05:45 浏览: 66
高精度除法的C代码实现如下:
```C
#include <iostream>
#include <string>
using namespace std;
int main(){
string a_s; //被除数 a 的字符型
int a[521]={0},ans[521]={0}; //大整数 a 和 ans, 初始化为0
int b,i,j,len,reminder=0; //余数 reminder 一定要初始化
cin >> a_s >> b;
if(b==0){ //如果除数为零, 显然是不正确的
cout << "除数不能为0" << endl;
return 0;
}
len = a_s.length(); // a 的长度
for(i=0;i<len;i++){
//转化为 int 型数组
a[i] = a_s[len-1-i] - '0';
}
for(i=len-1;i>=0;i--){
//核心计算
reminder = reminder * 10 + a[i]; //模拟竖式除法中的落位
ans[i] = reminder / b;
reminder %= b;
}
while(ans[len]==0 && len>0) len--; //去除前缀无用的零
for(i=len;i>=0;i--){
//结果输出
cout << ans[i];
}
if(reminder){
cout << "余" << reminder << endl; //如果有余数就输出余数
}
return 0;
}
```