需要帮助理解基本的伪代码算法问题
Need help understanding basic pseudocode algorithm problems
麻烦大家帮我理解一下这种伪代码算法是如何工作的以及它是如何得出正确答案的?任何帮助将不胜感激。
这些都是有陷阱的问题。它是在测试你是否真的仔细查看了问题 6 和问题 7 的代码的每个方面:
问题 6
第一个代码在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]
大于[=16的初始值=], EleFound
将得到值 1,而不是 15!在最后一次迭代中,它将被分配为 0,因为 s[0]
大于 1(!).
问题 7
第二个代码可以运行为:
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]
?
麻烦大家帮我理解一下这种伪代码算法是如何工作的以及它是如何得出正确答案的?任何帮助将不胜感激。
这些都是有陷阱的问题。它是在测试你是否真的仔细查看了问题 6 和问题 7 的代码的每个方面:
问题 6
第一个代码在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]
大于[=16的初始值=], EleFound
将得到值 1,而不是 15!在最后一次迭代中,它将被分配为 0,因为 s[0]
大于 1(!).
问题 7
第二个代码可以运行为:
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]
?