2
所以我有一个作业来制作算法的流程图,首先打印斐波纳契序列的N个项。这并不难,当然,但老师告诉我们,这可以在六个流程图“气球”中完成。这就是问题所在 - 我想这样做,但我似乎无法做到......也就是说,我认为最简单的方法是检查N> 2 - 如果不是,我们必须检查是否它是1或2,分别打印0或1。只有在这之后,我们才能使用“常规”F(n)= F(n-1)+ F(n-2)公式 - 否则它会崩溃。写更正式:在6个流程图“气球”中调整斐波纳契?
- 输入的N
- N> 2?
- 否:检查是否为1.如果是,则打印0并停止。
- 否:检查是否为2.如果是,则打印0和1并停止。
- 是:前往3
- 让我= 3。而我N:fib(i)= fib(i-1)+ fib(i-2)和print fib(i)。
- 停止。
问题是,我想这将需要10箱附近的东西,如果不是更多。那么最简单的方法是什么?我在网上找到的所有算法都倾向于假定我们只能得到2以上的N,但情况可能并非如此。能否请你帮忙?
编辑:好的,我把它调整,以8盒,并认为这是小到一个可以走了。 (分别为:第(n-2)个和第(n-1)个系列的术语)
- 输入N
- 让较旧= 0,年轻= 1:这样的事情,电流= 1, I = 2。
- 是N < = 1?
- 是:输出旧的,结束的。
- 否:前往4
- 输出年龄较大,年龄较小。
- i < N?
- 是:当前=年龄较大,年龄较小=年轻,年轻=当前,i + = 1。打印当前,请转至5.
- 否:结束。
这里能做些什么调整吗?
括号将使其减少混乱:'(X1,X2, N)=(x2,x1 + x2,N - 1)' – anatolyg
对,你太棒了!非常感谢 :) –