大整数除法c
时间: 2023-08-07 08:13:39 浏览: 43
以下是 C 语言实现大整数除法的一个例子:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_LEN 1000
int main()
{
char dividend[MAX_LEN+1], divisor[MAX_LEN+1], quotient[MAX_LEN+1];
int i, j, len1, len2, lenq, r;
long long int div, divs, quo;
printf("Enter dividend: ");
scanf("%s", dividend);
printf("Enter divisor: ");
scanf("%s", divisor);
len1 = strlen(dividend);
len2 = strlen(divisor);
// 将被除数和除数转化为数字形式
div = atol(dividend);
divs = atol(divisor);
// 初始化商和余数为 0
memset(quotient, '0', sizeof(quotient));
quotient[MAX_LEN] = '\0';
r = 0;
// 从高位到低位逐个计算商和余数
for (i = 0; i < len1; i++) {
div = div * 10 + (dividend[i] - '0');
quo = div / divs;
div = div % divs;
quotient[i] = quo + '0';
}
// 去除前导零
lenq = strlen(quotient);
for (i = 0; i < lenq - 1; i++) {
if (quotient[i] != '0')
break;
}
if (i > 0) {
lenq -= i;
for (j = 0; j < lenq; j++)
quotient[j] = quotient[j+i];
}
// 输出商和余数
printf("Quotient: %s\n", quotient);
printf("Remainder: %lld\n", div);
return 0;
}
```
该程序使用了 `atol` 函数将字符串转化为长整型,然后采用了类似长除法的方法计算商和余数。最后,通过去除商的前导零来得到最终结果。需要注意的是,该程序只能计算较小的大整数除法,如果需要计算更大的数,则需要使用高精度算法。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)