我是伪代码的新手,我无法将所有部分放在一起:
这是一个名为 foo 的函数的定义,它的输入是两个整数和一个整数数组a[1] ... a[n]
。
1 Foo(k,m, a[1],...,a[n])
2 if (k < 1 or m > n or k > m) return 0
3 else return a[k] + Foo(k+1,m,a[1],...,a[n])
假设输入整数是k=2
并且m=5
输入数组包含[5, 6, 2, 3, 4, 8, 2]
。Foo 返回什么值?使用求和符号,给出 Foo 计算的通用公式。
这个让我头疼。这是我到目前为止所做的:
第 2 行有三个条件语句:
- 如果 k<1 // 如果 2<1..这是错误的
- if m>n // 如果 5 大于数组中值的数量,即 7,则为 false
- 如果 k>m // 如果 2>5,这是错误的
所以这个函数将显示第 3 行。第 3 行说:
- 返回
a[k]
这是a[2]
数组的第二个值,即 6。所以取 6 并将其添加到(2+1, 5, a[1].....,a[n])
我在那里做的正确吗?如果是这样,我怎么知道a[n]
是什么?我应该找到那个吗?这一切的最终结果是什么?