我被问到以下问题:
使用 while 循环,编写一个生成斐波那契整数序列的程序。您的程序应该询问用户要生成多少斐波那契序列条目并将这些数量的条目打印到屏幕上。
我不知道从哪里开始。有人可以指出我正确的方向吗?
用一个变量来保存最后一个值和当前值,打印当前值,然后更新最后一个值……不想给你写了:)
在给出答案之前,让我们先考虑一下这个问题:
斐波那契数列的形式为 0 1 1 2 3 5 8 13 21 ...
所以你可以看到你的下一个数字是前两个数字的总和,所以根据它的定义你可以告诉你需要两个变量来存储前两个数字和一个变量来存储总和。你还需要知道当您需要终止循环时(您从用户那里获得的号码)。
看起来有人已经为你发布了它......没关系。
每个斐波那契数都是作为前两个斐波那契数的总和生成的。前两个斐波那契数是0
和1
。
使用上面的定义,让我们开始设计你的代码:
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