"高精度算法c语言.doc详解:高精度除法按位相除,源码解析"

0 下载量 91 浏览量 更新于2024-03-16 收藏 89KB DOC 举报
本文总结了部分高精度算法在C语言中的实现。其中包括了高精度算法除法的实现方法。该算法按照从高位到低位的顺序,逐位相除。在除到第 j 位时,该位在接受了来自第 j-1 位的余数后再与除数相除。如果最高位为零,则商的长度减一。以下是该算法的C语言源程序示例: ``` //高精度除以低精度 #include <stdio.h> #include <string.h> #define MAXN 1005 int main() { char a[MAXN], b[MAXN], c[MAXN]; int A[MAXN], B, C[MAXN]; while (scanf("%s%d", a, &B) != EOF) { int i, j; int lena = strlen(a); for (i = 0; i < lena; i++) { A[i] = a[lena - i - 1] - '0'; } for (i = lena; i > 0; i--) { if (A[i]) { for (j = lena; j >= 0; j--) { C[j] += A[i] % B; A[i - 1] += A[i] * 10; } } } int len = 0; while (C[len] == 0 && len < MAXN) len++; if (len == MAXN) printf("0"); for (i = len; i < MAXN; i++) { printf("%d", C[i]); } printf("\n"); } return 0; } ``` 以上是一个简单的高精度除法算法的C语言实现。通过这段代码,我们可以看到高精度除法的具体细节。希望本文对您有所帮助。