将除法运算转化为减法运算的方法如下:
从被除数的最高位开始,逐位减去除数 ,直到被除数的当前位小于除数为止。记录减法的次数
,并将被除数的前面添加一个0,继续上述过程,直到被除数的最低位也被处理完。
下面是一个具体的实现示例:
```c
include include void ss(char *s1, int m) { int i = 0, j; while (1) { if (s1[i] == '0') { i++; } else { j = i; break; } } for (; i > j; i--) { if (s1[i] < '0') { s1[i] += 10; s1[i - 1]--; } } } int main() { char s1, s2; int n, m; while (scanf("%s%s", s1, s2) != EOF) { n = strlen(s1); m = strlen(s2); if (n < m || (n == m && strcmp(s1, s2) < 0)) { printf("0 余数=\n"); } else { int result = 0; for (int i = 0; i < n; i++) { ss(s1 + i, m); int count = 0; while (s1[i] >= s2) { s1[i] -= s2; count++; } result += count; } printf("%d 余数=%d\n", result, s1); } } return 0; } ``` 解释 ss函数: 这个函数用于将字符串表示的被除数左移一位,使得最高位对齐,然后从最高位开始逐位减去除数,直到当前位小于除数为止。 读取两个字符串,分别表示被除数和除数,然后调用ss函数处理被除数,接着通过循环减去除数并记录次数,最后输出商和余数。 这种方法通过多次减法操作来实现除法,适用于手算除法的情况,但在编程中可能需要额外的空间来存储中间结果。main函数: