我要有一个长度为 50 个元素的数组。每个元素将包含一个数字以形成一个 50 位数字。我想要做的是将这个 50 位长数组乘以另一个 50 位长数组。我想到的方法是将每个数字转换成一个字符串。然后生成一个算法,一次将 20 位数字逐行相乘。然后,一旦最后一个 for 循环超出范围,我就可以通过将它从字符串转换为数字来重建新数组。在我尝试这个之前有什么替代想法,或者我得到的是你也会做的吗?
最佳答案
int n1[50], n2[50], out[51];
// n1 and n2 must be populated here
int carry = 0;
for (int cur = 49; cur >= 0; --cur) {
out[cur+1] = n1[cur] * n2[cur] + carry;
carry = out[cur+1] / 10;
out[cur+1] %= 10;
}
out[0] = carry;
关于c++ - 如何将两个数组与每个元素作为数字相乘 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26558555/