'''
Created on 2014年8月21日
Even Fibonacci numbers
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
@author: wxp2971
'''
# 计算数值,求余计算求和
def valFibonacci(n):
item1 = 1; item2 = 2
if n == 1:
return item1
if n == 2:
return item2
for i in range(n):
sum = item1 + item2
item1 = item2
item2 = sum
return sum
sum = 0
i = 1
val = valFibonacci(i)
while (val < 4000000):
if val%2 == 0:
sum += val
i += 1
val = valFibonacci(i)
print(sum)
# 每三位是一个偶数,直接加,不加判断
limit = 4000000
secondSum = 0
item1 = 1
item2 = 1
item3 = item1 + item2
while (item3 < limit):
secondSum = secondSum + item3
item1 = item2 + item3
item2 = item1 + item3
item3 = item1 + item2
print(secondSum)
# 答案中的递推公式,观察
def valFiboni(eN):
item1 = 2
item2 = 8
for i in range(eN):
valN = 4*item2 + item1
item1 = item2
item2 = valN
return valN
i = 0
val = 10
threeSum = 0
while (val < 4000000):
threeSum += val
i += 1
val = valFiboni(i)
print(threeSum)
Project Euler 2
最新推荐文章于 2020-02-29 22:36:14 发布