int a[101], b[101], c[202];
int mul(int l1, int l2, int a1[101], int a2[101], int c[202])
{
int i, j;
int y;//进位
int x;//乘积
int z;//余数
int w;//乘积结果保存位置
memset((void *)&c[0], 0, sizeof(int));
for(i = 0; i < 101; i++){
for(j = 0; j < 101; j++){
x = a1[i] * a2[j];
z = x % 10;
y = x/10;
w = i + j;
c[w] += z;
c[w+1] += y + c[w]/10;
c[w] %= 10;
}
}
w = l1 + l2;
if(c[w-1] == 0){
w--;
}
return w;
}
本文介绍了一种使用数组来实现大整数乘法的方法。通过遍历两个大整数的每一位进行相乘,并考虑进位,最终得到乘法结果。此方法适用于超出基本数据类型表示范围的大整数运算。
4万+

被折叠的 条评论
为什么被折叠?



