用C语言写一段大整数乘法的代码
时间: 2024-03-06 09:48:30 浏览: 106
手动乘法模拟实验
下面是一段C语言的大整数乘法代码示例:
```
#include <stdio.h>
#include <string.h>
#define MAX_DIGITS 1000
void multiply(char num1[], char num2[], char result[]) {
int len1 = strlen(num1);
int len2 = strlen(num2);
int i, j, k, carry = 0;
int prod[MAX_DIGITS] = {0};
for (i = len2 - 1; i >= 0; i--) {
carry = 0;
for (j = len1 - 1; j >= 0; j--) {
int digit1 = num1[j] - '0';
int digit2 = num2[i] - '0';
int prod_digit = digit1 * digit2 + carry + prod[i + j + 1];
carry = prod_digit / 10;
prod[i + j + 1] = prod_digit % 10;
}
prod[i + j + 1] = carry;
}
i = 0;
while (i < len1 + len2 && prod[i] == 0) {
i++;
}
if (i == len1 + len2) {
result[0] = '0';
result[1] = '\0';
return;
}
for (j = 0; j < len1 + len2 - i; j++) {
result[j] = prod[j + i] + '0';
}
result[j] = '\0';
}
int main() {
char num1[MAX_DIGITS], num2[MAX_DIGITS], result[MAX_DIGITS];
printf("Enter first number: ");
scanf("%s", num1);
printf("Enter second number: ");
scanf("%s", num2);
multiply(num1, num2, result);
printf("Result: %s\n", result);
return 0;
}
```
这段代码通过字符串形式存储两个大整数,然后进行乘法运算,最后将结果以字符串形式输出。
阅读全文