Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.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
Python 欧拉投影:偶数斐波那契数_Python_Project_Fibonacci_Solution_Eulers Number - Fatal编程技术网

Python 欧拉投影:偶数斐波那契数

Python 欧拉投影:偶数斐波那契数,python,project,fibonacci,solution,eulers-number,Python,Project,Fibonacci,Solution,Eulers Number,斐波那契序列中的每个新项都是通过将前两项相加生成的。从1和2开始,前10个术语将是: 1、2、3、5、8、13、21、34、55、89 通过考虑Fibonacci序列中值不超过400万的项,求偶数值项之和 我的程序打印4613731,但应该是4613732。问题出在哪里? def fib(n): if n == 0: return 1 elif n == 1: return 2 else: return fib(n-1)+f

斐波那契序列中的每个新项都是通过将前两项相加生成的。从1和2开始,前10个术语将是:

1、2、3、5、8、13、21、34、55、89

通过考虑Fibonacci序列中值不超过400万的项,求偶数值项之和

我的程序打印4613731,但应该是4613732。问题出在哪里?

def fib(n):
    if n == 0:
        return 1
    elif n == 1:
        return 2
    else:
        return fib(n-1)+fib(n-2)

tot = 0
n = 0
while fib(n) <= 4000000:
    if fib(n) % 2 != 0:
        tot += fib(n)
    n += 1

print(tot, n)
def fib(n):
如果n==0:
返回1
elif n==1:
返回2
其他:
返回fib(n-1)+fib(n-2)
tot=0
n=0
而fib(n)
这将检查奇数值,因为偶数模(%)2为0


另外,您计算了三次fib(n)
。我想做点什么。谢谢你的回复!我忘了“偶数”是什么意思了,抱歉浪费了你的时间 我还改进了我的代码

tot = 0
a = 1
b = 1
h = 0

while h <= 4000000:
    if h % 2 == 0:
        tot += h
    a = b
    b = h
    h = a + b

print(tot)
tot=0
a=1
b=1
h=0

当h不是奇数求和吗?你为每一个
n
计算三次
fib(n)
,保持它最优化。@Arman-Uh。。。事实上,与他们的实际使用频率相比,三次是非常好的。你的结果4613731是奇数应该是一个线索…@ubadub,因为他们认为他们是对偶数求和,而偶数之和是偶数。所以当他们看到一个奇数和时,他们应该意识到他们不是对偶数值求和。
tot = 0
a = 1
b = 1
h = 0

while h <= 4000000:
    if h % 2 == 0:
        tot += h
    a = b
    b = h
    h = a + b

print(tot)