首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在6个流程图“气球”中微调斐波纳契?

在6个流程图“气球”中微调斐波纳契?
EN

Stack Overflow用户
提问于 2012-10-14 10:37:34
回答 1查看 515关注 0票数 2

所以我要做一个作业,做一个算法流程图,首先打印斐波纳契序列的N个项。当然,这并不难,但老师告诉我们,这可以用六个“气球”流程图来完成。问题是-我想这样做,但我似乎不能.也就是说,我认为最短的方法是检查是否是N>2 --如果不是,我们必须检查它是1还是2,打印0或1。只有在此之后,我们才能使用“正则”F(n)=F(n-1)+F(n-2)公式,否则,它就会崩溃。更正式地写:

  1. 输入N
  2. N>2?
    • 否:检查是否为1。如果是,打印0并停止。
    • 否:检查是否为2。如果是,打印0和1并停止。
    • 是:继续到3

  1. 假设I< N: fib(i)=fib(i-1)+fib(i-2)并打印fib(i)。
  2. 停止播放。

问题是,如果不是更多的话,我想大概需要10箱左右的时间才能做成这个。那么,更短的方法是什么呢?我在网上发现的所有算法都倾向于假设我们只会得到N多于2,但情况可能并非如此。你能帮忙吗?

编辑:好的,我把它调整到了8个盒子,认为它是一个人可以去的最小的。就像这样:

  1. 输入N
  2. 设older=0,younger=1 (分别为(n-2)th和(n-1)第四项),current=1,i=2.
  3. N<=1?吗?
    • 是的:输出较老,结束。
    • 否:继续到4号

  1. 输出更老,更年轻。
  2. I< N?
    • 是的:当前= older+younger,老年=年轻,年轻=当前,i+=1。打印电流,转到5。
    • 不:结束。

这里还有什么地方可以调整吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-14 13:36:43

  1. 输入N
  2. 设(x1,x2) = (0,1)
  3. N,,≤0?
    • 是的:停止
    • 否:继续进行第4步

  1. 打印x1
  2. 设( x1,x2,N) = (x2,x1+ x2,N-1),然后继续执行步骤3。

如果“停止”需要是它自己的一步,那将是第六步。

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

https://stackoverflow.com/questions/12881435

复制
相关文章

相似问题

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