Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 在6流程图中调整斐波那契;气球;?_Algorithm_Flowchart - Fatal编程技术网

Algorithm 在6流程图中调整斐波那契;气球;?

Algorithm 在6流程图中调整斐波那契;气球;?,algorithm,flowchart,Algorithm,Flowchart,所以我有一个作业要做一个算法流程图,打印斐波那契序列的前N项。当然,这并不难,但老师告诉我们,这可以用六个“气球”来完成。这就是问题所在-我想这样做,但我似乎无法。。。也就是说,我认为最短的方法是检查N>2,如果不是,我们必须检查它是1还是2,然后分别打印0或1。只有在这之后,我们才能使用“正则”F(n)=F(n-1)+F(n-2)公式——否则,它会崩溃。更正式地写作: 输入N N> 二?? 否:检查是否为1。如果是,请打印0并停止 否:检查是否为2。如果是,则打印0和1并停止 是:继续3

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

  • 输入N
  • N> 二??
    • 否:检查是否为1。如果是,请打印0并停止
    • 否:检查是否为2。如果是,则打印0和1并停止
    • 是:继续3
  • 设i=3。而i
  • 停下来
  • 问题是,我想大概需要10盒左右才能做成这个,如果不是更多的话。那么,哪条路更短呢?我在网上找到的所有算法都倾向于假设我们只能得到N个多于2个,这可能不是事实。你能帮忙吗

    编辑:好的,我把它调整为8个盒子,并且认为它是一个可以去的最小的盒子。大概是这样的:

  • 输入N
  • 设较老的=0,较年轻的=1(分别为系列的第(n-2)项和第(n-1)项),电流=1,i=2
  • 是N吗
  • 输入N
  • 设(x1,x2)=(0,1)
  • 是N吗≤ 0?
    • 是的,停下来
    • 否:转至步骤4
  • 打印x1
  • 让(x1,x2,N)=(x2,x1+x2,N-1),并继续执行步骤3

  • 如果“停止”需要是它自己的步骤,那将是第6步。

    括号将使它更容易混淆:
    (x1,x2,N)=(x2,x1+x2,N-1)
    你说得对,太棒了!非常感谢:)