博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
来自projecteuler.net网站的练习题2
阅读量:4560 次
发布时间:2019-06-08

本文共 1191 字,大约阅读时间需要 3 分钟。

0.题目如下:

  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.

1.先理解什么是斐波那契数列:

  一、百度说法:

  斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

  二、个人理解:

  前两位之和等于第三位。这就是斐波那契数列

2.怎么获取呢?(直接点击链接查看具体代码)

  

  

3.至于用哪种方法呢?自己根据不同情况来选择。

4.以下为代码:

  这里我选择了方法二,目的是高效解决练习题。

def main():    num = [1, 2]    result = 2    while 1:  #循环的内容就是将小于400万的斐波那契的偶数相加        x = num[-1] + num[-2]#斐波那契数列最后两位进行相加,等于下一个斐波那契数        if x < 4000000:            num.append(x)#将下一个斐波那契数加入到列表中            if x % 2 == 0:#判断是不是偶数                result = result + x#将所有偶数相加        else:            break#下一个斐波那契数大于400万就跳出循环    return resultif __name__ == '__main__':    print(main())

 

转载于:https://www.cnblogs.com/my-times/p/7568077.html

你可能感兴趣的文章
自定义进度条(圆形、横向进度条)
查看>>
spark-streaming-kafka采坑
查看>>
9.Mongodb与python交互
查看>>
18-[JavaScript]-函数,Object对象,定时器,正则表达式
查看>>
读取短信回执
查看>>
EF 数据初始化
查看>>
PreparedStatement与Statement
查看>>
WebService -- Java 实现之 CXF ( 使用CXF工具生成client 程序)
查看>>
[LeetCode]Two Sum
查看>>
Android学习--网络通信之网络图片查看器
查看>>
[LeetCode] Excel Sheet Column Number
查看>>
安卓广播接收者
查看>>
999线监控
查看>>
Redis在python中的使用
查看>>
理解class.forName()
查看>>
每日一小练——数值自乘递归解
查看>>
二叉搜索树 (BST) 的创建以及遍历
查看>>
MyBatis/Ibatis中#和$的区别
查看>>
【JAVASCRIPT】React学习-组件生命周期
查看>>
win 64 文件操作
查看>>