C语言实现大数相乘代码
时间: 2023-10-26 14:02:47 浏览: 188
用C语言实现的大数相乘
以下是C语言实现大数相乘代码示例:
```
#include <stdio.h>
#include <string.h>
#define MAXLEN 1000 // 最大位数
void multiply(char *a, char *b, char *result){
int len_a = strlen(a), len_b = strlen(b);
int len_result = len_a + len_b;
int i, j, temp;
int arr_a[MAXLEN] = {0}, arr_b[MAXLEN] = {0}, arr_result[MAXLEN * 2] = {0};
for(i = 0; i < len_a; i++)
arr_a[i] = a[len_a - 1 - i] - '0';
for(i = 0; i < len_b; i++)
arr_b[i] = b[len_b - 1 - i] - '0';
for(i = 0; i < len_a; i++){
for(j = 0; j < len_b; j++){
arr_result[i + j] += arr_a[i] * arr_b[j];
}
}
for(i = 0; i < len_result; i++){
temp = arr_result[i] / 10;
arr_result[i] %= 10;
arr_result[i + 1] += temp;
}
while(len_result > 0 && arr_result[len_result - 1] == 0)
len_result--;
for(i = 0; i < len_result; i++)
result[i] = arr_result[len_result - 1 - i] + '0';
result[len_result] = '\0';
}
int main(){
char a[MAXLEN], b[MAXLEN], result[MAXLEN * 2];
printf("请输入两个大数进行相乘:\n");
scanf("%s %s", a, b);
multiply(a, b, result);
printf("计算结果:%s\n", result);
return 0;
}
```
阅读全文