【发布时间】:2015-06-13 11:38:08
【问题描述】:
所以我有两个整数数组。我需要将它们相乘,但为此我需要将每个步骤的结果存储在一个临时数组的元素中。例如:
说数组是:
arf[2] = {1, 2};
ars[2] = {3, 2};
tmp[20]; // 每一步的临时数组
分辨率[20]; // 将每一步的结果存储在一个元素中
现在对于乘法,我们首先做 2*2 并将其存储在 tmp[1] 中, 然后 2*1 并将其存储在 tmp[0] 中, 答案是 24。现在我需要将 24 存储在 res 数组的第一个元素中。所以 res[0] = 24。3 * 12 也是如此。我知道我需要用 for 循环来做。我将 tmp[1] 存储在 res[0] 中,接下来我需要将 tmp[0] 附加到 res[0] 但它会覆盖它。
在这种情况下,c 为 2,因为 arf 和 ars 各有 2 个元素。
for (k = c - 1; k >= 0; k--)
{
res[i] = tmp[k];
}
那么如何在现有元素中追加数据而不覆盖其中的数据?
【问题讨论】:
-
你能更清楚你所说的令人困惑的事情吗?现在对于乘法,我们首先做 2*2 并将其存储在 tmp[1],然后 2*1 并将其存储在 tmp[0 ],答案是 24。”我不知道 24 岁的答案如何?
-
@Ankur Patel:OP 正在尝试实现正常乘法,其中数组将数字表示为数字列表。
-
for(k = 0; k < c; ++k) res[i] = res[i]*10 + tmp[k]; -
2*2 = 4; 2*1=2;它是向后循环,所以它是 24。
-
我真的需要一些帮助。