public static string Multiply(string num1, string num2)
{
int carry;
int[] result;
int[] multiplicand, multiplier;
multiplicand = Reverse(num1);
multiplier = Reverse(num2);//这两条代码实现字符串反转,并变成数组形式
//存储大数相乘后的结果
result = new int[multiplicand.Length + multiplier.Length + 3];
//两层循环,完成大数乘法运算逐位相乘,然后错位相加
for (int indexMplier = 0; indexMplier < multiplier.Length; indexMplier++)
{
for (int indexMplicand = 0; indexMplicand < multiplicand.Length; indexMplicand++)
{
result[indexMplier + indexMplicand] +=
multiplicand[indexMplicand] * multiplier[indexMplier];
}
}
//处理进位
for (int index = 0; index < result.Length; index++)
{
carry = result[index] / 10;
result[index] = result[index] % 10;
if (carry > 0)
{
result[index + 1] += carry;
}
}
//将结果反转,返回
return Reverse(result);
}
}
两个for循环都表示什么意思?还有result赋值那句,长度为啥+3?