c语言函数解决高精度乘法
时间: 2024-06-13 14:08:08 浏览: 70
以下是一个C语言函数解决高精度乘法的例子:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
void multiply(char num1[], char num2[], char result[]) {
int len1 = strlen(num1);
int len2 = strlen(num2);
int i, j, k;
// 初始化结果数组
int res[MAX_LEN] = {0};
// 逐位相乘
for (i = len1 - 1; i >= 0; i--) {
for (j = len2 - 1; j >= 0; j--) {
res[i + j + 1] += (num1[i] - '0') * (num2[j] - '0');
}
}
// 处理进位
for (k = len1 + len2 - 1; k > 0; k--) {
res[k - 1] += res[k] / 10;
res[k] %= 10;
}
// 转换为字符数组
for (i = 0; i < len1 + len2; i++) {
result[i] = res[i] + '0';
}
result[i] = '\0';
}
int main() {
char num1[] = "123456789";
char num2[] = "987654321";
char result[MAX_LEN];
multiply(num1, num2, result);
printf("%s * %s = %s\n", num1, num2, result);
return 0;
}
```
阅读全文