如何在不使用列表的情况下生成Fibonacci序列?

时间:2013-10-23 02:16:05

标签: python for-loop fibonacci

我被问到如下:

  

使用while循环,编写一个生成Fibonacci的程序   整数序列。你的程序应该问用户多少   Fibonacci序列条目用于生成和打印它们的数量   到了屏幕。

我不知道从哪里开始。有人能指出我正确的方向吗?

3 个答案:

答案 0 :(得分:2)

使用变量来保存最后一个值和当前值,打印当前值,然后更新最后一个值...不想为你写它:)

答案 1 :(得分:0)

在给出答案之前,让我们先考虑一下这个问题:

斐波那契序列的形式 0 1 1 2 3 5 8 13 21 ...

因此,您可以看到您的下一个数字是前两个数字的总和,因此,根据其定义,您可以告诉您需要两个变量来存储前两个数字和一个变量来存储总和。您还可以需要知道何时需要终止循环(从用户那里获得的数字)。

看起来有人已经为你发布了......没关系。

答案 2 :(得分:0)

每个斐波纳契数都是前两个斐波纳契数的总和。前两个斐波纳契数是01

使用上面的定义,让我们开始设计您的代码:

function fibonnacci:
    n := ask user how many numbers to output  # hint: use raw_input() and int()
    if n is 1:
        output 0
    else if n is 2:
        output 0, 1
    else:
        output 0, 1
        lastNumber := 1
        twoNumbersAgo := 0
        count up from 3 to n:
            nextNumber := twoNumbersAgo + lastNumber
            output nextNumber
            twoNumbersAgo := lastNumber
            lastNumber = nextNumber
end function