我最初错误地编写了程序.我没有在一个范围(即startNumber 1,endNumber 20应该=只有1和20之间的数字)之间返回Fibonacci数,而是为程序编写了显示范围之间的所有Fibonacci数(即startNumber 1,endNumber 20)显示=前20个斐波纳契数).我以为我有一个确定的代码.我也不明白为什么会这样.
startNumber = int(raw_input("Enter the start number here "))
endNumber = int(raw_input("Enter the end number here "))
def fib(n):
if n < 2:
return n
return fib(n-2) + fib(n-1)
print map(fib, range(startNumber, endNumber))
Run Code Online (Sandbox Code Playgroud)
有人在我的第二部分(因为重复而关闭 - /sf/ask/35293541/)指出我需要使用while循环通过生成器传递startNumber和endNumber.有人可以指点我如何做到这一点?欢迎任何帮助.
我是一名学习程序员,而且我遇到了一些混乱.我被要求编写一个程序,用于通过用户输入的起始编号和结束编号来计算和显示斐波纳契序列(即startNumber = 20 endNumber = 100,它将仅显示该范围之间的数字).诀窍是包含它(我不知道如何在Python中使用它? - 我假设这意味着使用包含范围?).
到目前为止我所拥有的不是实际编码,而是:
我不知道从哪里开始,我正在询问如何写这个的想法或见解.我也尝试过编写Fib序列论坛,但我也迷失了.
嘿,我正在尝试编写一个脚本,该脚本总结了"斐波那契序列"中的所有偶数项,低于4百万.
Fibonacci1 = 1
Fibonacci2 = 2
a = 2
i = 4
for i in range(1,4000000):
Fibonacci1 = Fibonacci1 + Fibonacci2
if Fibonacci1 % 2 == 0:
a = a + Fibonacci1
Fibonacci2 = Fibonacci1 + Fibonacci2
if Fibonacci2 % 2 == 0:
a = a + Fibonacci2
print a
raw_input()
Run Code Online (Sandbox Code Playgroud)
它应该不到一分钟,但它花了一整夜,它没有解决!
编辑:对不起伙计们,我误解了这个问题.我虽然这意味着我必须将所有偶数项加起来达到400万!但解决方案是将所有平均值加上400万.
工作代码(在不到一秒的时间内完成):
Fibonacci1 = 1
Fibonacci2 = 2
a = 2
while a < 4000000:
Fibonacci1 = Fibonacci1 + Fibonacci2
if Fibonacci1 % 2 == …Run Code Online (Sandbox Code Playgroud)