我有一个数组,其中元素的数量由用户选择。用户选择元素数量后,介绍每个元素的值。之后,程序应该计算 2 个或 3 个元素的总和,以便找到可以在数组中找到的对应值。例如,我有以下值: 3,6,4,9 ---> 3+6=9 并且 4 是 != 这个和的数字。对于此类示例,我找到了一种计算总和的方法。 如果我改变前:9,4,6,3 ---> 3+6=9。这样我不知道如何从右到左求和元素,因为 3 是数组的第 N 个元素。
代码是用C语言编写的
如果有人有任何想法或建议,那就太好了。谢谢 !
最佳答案
如果我正确理解你的问题,并假设你用 C 语言编写,一个简单的方法(但 O(n^3) 的成本非常高)是计算每个元素的总和与每个其他元素,然后与每个元素进行比较...令人困惑?
上述方法的代码类似于以下内容:
for (int i=0; i<ArrayLength; i++){
for (int j=0; j<ArrayLength; j++){
int tempVar = Array[i] + Array[j]; // Calculate every element with every other element
for (int k=0; k<ArrayLength; k++){ // Check if that calculation meets equality with another Array Element.
if (k==i || k==j) continue;
if (tempVar == Array[k])
printf("You have a match for the sum of %d and %d elements with the element in position %d\n",Array[i],Array[j],Array[k]);
}
}
}
请注意,由于成本原因,上面的代码与实现有用的代码完全不同,我只是出于算法思想的目的提供它。
如果您需要比某些算法想法更多的帮助,请提供您的一些代码。
关于c - 第 N 个元素的数组,尝试从左到右和从右到左添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43978143/