用C++写一个大数相乘的程序
时间: 2023-03-30 11:03:52 浏览: 119
C++实现大数相乘的算法
5星 · 资源好评率100%
好的,我可以回答这个问题。以下是一个用 C 语言编写的大数相乘程序的示例:
```
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void multiply(char num1[], char num2[], char result[]) {
int len1 = strlen(num1);
int len2 = strlen(num2);
int i, j, k;
// 初始化结果数组
for (i = ; i < MAX_LEN; i++) {
result[i] = '';
}
// 逐位相乘
for (i = len1 - 1; i >= ; i--) {
int carry = ;
for (j = len2 - 1; j >= ; j--) {
int temp = (num1[i] - '') * (num2[j] - '') + (result[i + j + 1] - '') + carry;
result[i + j + 1] = temp % 10 + '';
carry = temp / 10;
}
result[i] += carry;
}
// 去掉前导零
int start = ;
while (result[start] == '' && start < MAX_LEN - 1) {
start++;
}
// 将结果复制到新数组中
int len = strlen(result + start);
for (i = ; i < len; i++) {
result[i] = result[start + i];
}
result[i] = '\';
}
int main() {
char num1[MAX_LEN], num2[MAX_LEN], result[MAX_LEN * 2];
printf("请输入第一个数:");
scanf("%s", num1);
printf("请输入第二个数:");
scanf("%s", num2);
multiply(num1, num2, result);
printf("结果为:%s\n", result);
return ;
}
```
这个程序可以输入两个大数,然后计算它们的乘积,并输出结果。
阅读全文