c++ - 如何将两个数组与每个元素作为数字相乘 C++

标签 c++ arrays string int

我要有一个长度为 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/

相关文章:

从零开始的 C++ UI 框架?

c++ - 计算空字符单元格 C++

MySQL字符串选择命令

正则表达式:如何获取字符串中组的所有匹配项

c++ - 为什么数组*新数组;在 C++ 中失败?

c++ - for 循环无法与调试器一起正常工作

c++ - 更新 map 值

php - 转储到 JavaScript 数组的 HTML 文本破坏了我的代码

python - vector/matrix `np.outer` 乘积是否有类似于 "outer"的函数?

c++ - 13个字符的数字字符串到数字