c++ 高精度取余数代码
时间: 2023-07-24 17:16:16 浏览: 54
下面是一个简单的 C++ 高精度取余数的示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
const int N = 1010;
int a[N], b;
char s[N];
int main()
{
cin >> s >> b;
int len = strlen(s);
for (int i = 0; i < len; i++) a[i] = s[i] - '0'; // 将字符串转成数字
int r = 0; // 记录余数
for (int i = 0; i < len; i++)
{
r = r * 10 + a[i]; // 将余数乘以 10,加上当前数字
a[i] = r / b; // 计算商
r %= b; // 计算余数
}
int k = len - 1;
while (k > 0 && a[k] == 0) k--; // 去掉前导零
for (int i = k; i >= 0; i--) cout << a[i]; // 倒序输出商
cout << endl << r << endl; // 输出余数
return 0;
}
```
其中,a数组存储被除数,b表示除数,s表示输入的被除数字符串。首先将字符串转化成数字存储在a数组中,然后从高位到低位依次计算商和余数,最后输出结果。需要注意的是,在计算余数时,要将余数乘以 10 再加上下一个数字,这样才能保证计算出正确的余数。