一百位数以上的除法代码
时间: 2023-04-03 20:04:44 浏览: 139
以下是一个简单的 C 语言除法函数,可以处理一百位数以上的除法:
```c
#include <stdio.h>
#include <string.h>
#define MAXN 1000
int a[MAXN], b[MAXN], c[MAXN];
void divide(int a[], int b[], int c[]) {
int la = strlen(a), lb = strlen(b);
for (int i = 0; i < la; ++i) a[i] -= '0';
for (int i = 0; i < lb; ++i) b[i] -= '0';
int r = 0;
for (int i = la - 1; i >= 0; --i) {
r = r * 10 + a[i];
c[i] = r / b[0];
r %= b[0];
}
int lc = la - lb + 1;
while (lc > 0 && c[lc - 1] == 0) --lc;
for (int i = 0; i < lc / 2; ++i) {
int t = c[i];
c[i] = c[lc - i - 1];
c[lc - i - 1] = t;
}
}
int main() {
char sa[MAXN], sb[MAXN];
scanf("%s%s", sa, sb);
divide(sa, sb, c);
for (int i = 0; c[i] != 0; ++i) printf("%d", c[i]);
printf("\n");
return 0;
}
```
这个函数使用了竖式除法的方法,先将被除数和除数都转换成整数数组,然后从高位到低位依次计算商,最后将商的数组反转输出即可。
阅读全文