欧拉项目【ProjectEuler】系列-第二题
----人既无名
Problem2: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.
意思是,对于斐波拉切数列,求出不超过4000000的所有值为偶数的项的和。
首先我想介绍一些斐波拉切数列的一些基本介绍,因为斐波拉切数列是一个非常奇特的数列.
如果定义第一项F(0)=0,第二项F(1)=1,以后每一项都是前两项的和。
F(n+2)=F(n) + F(n+1), 其中n=0,1,2,3,...
斐波拉切数列的一些基本特性:1. F(0)+F(1)+F(2)+...+F(n)=F(n+2)-1
2.F(1)+F(3)+F(5)+...+F(2n-1)=F(2n)
3.F(0)+F(2)+F(4)+...+F(2n)=F(2n+1)-1
4.F(m+n-1)=F(m-1)F(n-1)+F(m)F(n)(利用该项可以构造复杂度为O(logn)的程序)
5.F(n)^2=F(n+1)F(n-1)+(-1)^(n-1)(斐波那契数列中任一项的平方数都等于跟它相邻的前后两项的乘积加1或减1)
6.F(n+2)F(n-1)-F(n+1)F(n)=1(相邻的四个斐波那契数,中间两数之积(内积)与两边两数之积(外积)相差1)
此外,斐波那契数列的通项公式为