【发布时间】:2021-08-08 05:52:54
【问题描述】:
【问题讨论】:
标签: algorithm computer-science pseudocode
【问题讨论】:
标签: algorithm computer-science pseudocode
这些都是带有陷阱的问题。它正在测试您是否真的仔细查看了问题 6 和问题 7 代码的各个方面:
第一个代码可以用 JavaScript 表示如下:
function Find2(s, n) {
let EleFound = s[0]
for (let i = n-1; i >= 0; i--) {
if (s[i] > EleFound) {
EleFound = i
}
}
return EleFound
}
let result = Find2([3, 15, 7, 9], 4);
console.log(result);
当你运行它时,你会看到它输出 0。一旦你看到它,很明显,但 EleFound = i 行分配的是 index,而不是 s[i]!并且随着索引i 减少到零,和 s[1] 大于EleFound 的初始值,EleFound 将得到值 1,不是15!在最后一次迭代中,它将被分配 0,因为s[0] 大于 1(!)。
第二个代码可以这样运行:
function AddMul5(A, n) {
let sum = A[0]
for (let i = 1; i <= n-1; i++) {
sum = sum + i
}
return sum
}
let result = AddMul5([3, 5, 7, 9], 5);
console.log(result);
输出是 13。你发现这里的陷阱了吗?很像啊……
提示:
A中的哪些值用于此总和?
是否使用了
A[1]?
【讨论】: