首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单伪码问题

简单伪码问题
EN

Stack Overflow用户
提问于 2010-09-03 03:44:52
回答 3查看 467关注 0票数 1

我刚开始使用psuedocode,我很难把所有的代码拼凑在一起:

下面是一个名为foo的函数的定义,它的输入是两个整数和一个整数数组a[1] ... a[n]

代码语言:javascript
复制
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=2m=5,并且输入数组包含[5, 6, 2, 3, 4, 8, 2]。Foo返回什么值?使用求和表示法,给出Foo计算的一般公式。

这个让我的头疼。我到目前为止所做的事情如下:

第2行有三个条件语句:

如果

  • // if 2<1..this为false
  • ,如果m>n // if 5大于数组中的值数量( 7 ),则这是false
  • 如果k>m // if 2>5,这是false

因此,这个函数将显示第3行。第3行说:

(2+1, 5, a[1].....,a[n])

  • 返回a[k],即a[2],它是数组的第二个值,为6。

我在上面做的对吗?如果是这样,我怎么知道a[n]是什么?我该去找那个吗?这一切的最终结果是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-03 03:56:13

因此取6并将其添加到(2+1,5,a1.,an)

取6并加到Foo(2+1,5,a1. an)。这是一个递归函数。您必须再次使用k=3和m=5对函数进行评估。

票数 1
EN

Stack Overflow用户

发布于 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,.是啊,你应该自己找出来。继续你的分析。:)

票数 2
EN

Stack Overflow用户

发布于 2010-09-03 03:56:33

我觉得你很困惑,因为你的伪代码在我看来是真实的代码。我可能错了,但我们被教导要用简单的英语短语来写伪码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3632923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档