我刚开始使用psuedocode,我很难把所有的代码拼凑在一起:
下面是一个名为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行有三个条件语句:
如果
因此,这个函数将显示第3行。第3行说:
(2+1, 5, a[1].....,a[n])
a[k],即a[2],它是数组的第二个值,为6。我在上面做的对吗?如果是这样,我怎么知道a[n]是什么?我该去找那个吗?这一切的最终结果是什么?
发布于 2010-09-03 03:56:13
因此取6并将其添加到(2+1,5,a1.,an)
取6并加到Foo(2+1,5,a1. an)。这是一个递归函数。您必须再次使用k=3和m=5对函数进行评估。
发布于 2010-09-03 03:54:53
简单的答案:这个函数返回所有数字ak,ak+1,.上午。
到目前为止你所做的是正确的。"n“只是一个占位符,表示数组的最后一个元素。因此,如果输入数组是{5,6,2,3,4,8,2}、n = 7 (因为您有七个元素)和a[n] = 2。
但是为什么它返回所有数字的和ak,ak+1,.是啊,你应该自己找出来。继续你的分析。:)
发布于 2010-09-03 03:56:33
我觉得你很困惑,因为你的伪代码在我看来是真实的代码。我可能错了,但我们被教导要用简单的英语短语来写伪码。
https://stackoverflow.com/questions/3632923
复制相似问题