Project Euler 2

来源:互联网 发布:黑马人工计划软件 编辑:程序博客网 时间:2024/05/22 23:27
'''Created on 2014年8月21日Even Fibonacci numbersEach 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 sumsum = 0i = 1val = valFibonacci(i)while (val < 4000000):    if val%2 == 0:        sum += val    i += 1    val = valFibonacci(i)print(sum)# 每三位是一个偶数,直接加,不加判断limit = 4000000secondSum = 0item1 = 1item2 = 1item3 = item1 + item2while (item3 < limit):    secondSum = secondSum + item3    item1 = item2 + item3    item2 = item1 + item3    item3 = item1 + item2print(secondSum)# 答案中的递推公式,观察def valFiboni(eN):    item1 = 2    item2 = 8    for i in range(eN):        valN = 4*item2 + item1        item1 = item2        item2 = valN    return valNi = 0val = 10 threeSum = 0while (val < 4000000):    threeSum += val    i += 1    val = valFiboni(i)print(threeSum)

0 0
原创粉丝点击