【欧拉计划第 2 题】 偶数斐波那契数 Even Fibonacci numbers
Problem 2 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.
问题 2 偶数斐波那契数
斐波那契数列中的每个新项都是通过添加前两项来生成的。从 1 和 2 开始,前 10 个术语将是:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …
通过考虑斐波那契数列中值不超过四百万的项,求偶数项之和。
思路分析
斐波那契数列
首先清楚什么是斐波那契数列
斐波那契数(Successione di Fibonacci),又译为菲波拿契数、菲波那西数、斐氏数、黄金分割数。所形成的数列称为斐波那契数列
数学定义
数学上,使用递归的方法定义
通俗来讲,斐波那契数列由 0(第零项) 和 1 开始,之后的斐波那契数由之前的两数相加得出,举例
1、 1、 2、 3、 5、 8、 13、 21、 34、 55、 89、 144、 233、 377……
解题报告
常规
看到这么多数字,并且有一定规律,我们自然而然会联想到数组。利用其数学定义解决,关键在于第三个斐波那契数值等于前两个数值相加,而后一直如此,实现如下
1 | /* |
优化
仔细思考下,常规解决方案中,我们开辟了很大的内存空间,但实质上每次增加(记录下一个斐波那契数)的却只是用到了三个元素来进行求和运算,所以我们仅开辟一个三个元素的数组就好,节省了很大的内存开销
1 | /* |
答案:4613732