【问题标题】:Need help understanding basic pseudocode algorithm problems [closed]需要帮助理解基本的伪代码算法问题[关闭]
【发布时间】:2021-08-08 05:52:54
【问题描述】:

我可以麻烦任何人帮助我了解这种伪代码算法的工作原理以及它是如何得出正确答案的吗?任何帮助将不胜感激。

【问题讨论】:

    标签: algorithm computer-science pseudocode


    【解决方案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] 大于EleFound 的初始值,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]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      相关资源
      最近更新 更多