【发布时间】:2018-02-24 15:32:59
【问题描述】:
我试图了解这个问题的解决方案。问题是查看数组中的任何三个数字是否返回某个值。这个答案是我在网上找到的。
public bool numberequal(int sum, int[] array)
{
int i, k, j;
bool answer = false;
for (i = 0; i < array.Length - 2; i++)
{
for (k = i + 1; k < array.Length - 1; k++)
{
for (j = k + 1; j < array.Length; j++)
{
if (array[i] + array[k] + array[j] == sum)
{
answer = true;
return true;
}
}
}
}
return answer;
}
我的问题是第一个循环的第 i 次迭代在 array.length 上有 -2。第二个 k 迭代也有 -1。有人可以解释为什么吗?难道我们不需要遍历每个元素来得到正确的答案吗?
【问题讨论】:
-
尝试在调试器中逐行运行它,你应该明白为什么它是正确的。