【发布时间】:2020-09-21 15:26:45
【问题描述】:
示例:假设我们有一个 arr1 [1,2,3,4] 数组,产品将是 1x2、1x3、1x4、2x1、2x3、2x4、3x1、3x2、3x4、4x1、4x、4x3 .所以新数组就像 arr2 [2,3,4,2,6,8,3,6,12,4,8,12]。 我考虑过:
for( int i=0; i<n; i++){
for(int j=0; j<n; j++){
arr2[i]= arr1[j] * arr1[j+1];
}
}
但这只会增加连续的元素,而不是全部。 谁能告诉我逻辑/算法?
【问题讨论】:
-
听起来你需要嵌套循环。还有“a for loop with i=0 to n and i++ { arr2[i]= arr1[i] *arr[i+1]; }” 实际显示循环不是更容易吗?
-
您的问题还不清楚。一方面,您将实际需求和实施细节混合在一起。如果您只需要独特的产品,那么真的有必要将它们存储在数组中吗?
-
好的,我添加了代码。我知道逻辑不对。这意味着我们需要先找出每个元素的乘积,然后将其存储到另一个数组中。我可以摆脱重复。但我被困在第一部分。
-
所以最终数组将是 arr2[2,3,4,6,8,12]。 将乘法结果存储在
std::set中,您将获得免费排序和删除重复项。 -
@PaulMcKenzie 想象一个世界,初学者在循环之前学习算法,在指针之前学习迭代器,
std::string在 c 字符串之前......
标签: c++ arrays multiplication