Project Euler problem 2
2012-11-02 20:58
387 查看
这道题目的大意就是求小于等于400W的斐波那契数中偶数的和
看起来还是直接for就行了。
不过我们总要思考一下更优的解法。
观察斐波那契数列
1 1 2 3 5 8 13 21 34 。。。。
可以发现第3,6, 9。。。。项都是偶数
这是为什么呢, 很简单由于斐波那契数列的前两项是奇数
那么第3项必然是偶数,第4项是奇数跟偶数的和是奇数,第5项还是奇数跟偶数的和,然后第6项则是奇数与奇数之和了
如此循环往复,则发现3,6,9。。。等项是偶数了
对于斐波那契序列 有
F(n) = F(n-1) + F(n-2)
= F(n-2)+F(n-3)+F(n-2)=2 F(n-2) + F(n-3)
= 2(F(n-3)+F(n-4))+F(n-3))=3 F(n-3) + 2 F(n-4)
= 3 F(n-3) + F(n-4) + F(n-5) + F(n-6)
= 4 F(n-3) + F(n-6)
然后如果我们把符合要求的项提出来作为一个新的序列。
会发现新的通项公式为
E(n)=4*E(n-1)+E(n-2)
看起来还是直接for就行了。
不过我们总要思考一下更优的解法。
观察斐波那契数列
1 1 2 3 5 8 13 21 34 。。。。
可以发现第3,6, 9。。。。项都是偶数
这是为什么呢, 很简单由于斐波那契数列的前两项是奇数
那么第3项必然是偶数,第4项是奇数跟偶数的和是奇数,第5项还是奇数跟偶数的和,然后第6项则是奇数与奇数之和了
如此循环往复,则发现3,6,9。。。等项是偶数了
对于斐波那契序列 有
F(n) = F(n-1) + F(n-2)
= F(n-2)+F(n-3)+F(n-2)=2 F(n-2) + F(n-3)
= 2(F(n-3)+F(n-4))+F(n-3))=3 F(n-3) + 2 F(n-4)
= 3 F(n-3) + F(n-4) + F(n-5) + F(n-6)
= 4 F(n-3) + F(n-6)
然后如果我们把符合要求的项提出来作为一个新的序列。
会发现新的通项公式为
E(n)=4*E(n-1)+E(n-2)
相关文章推荐
- project euler Problem 36
- project euler Problem 13
- Project Euler Problem 24
- project euler Problem 18 & 36
- http://projecteuler.net/problem=26 [Answer:983]
- Project Euler Problem 6: Sum square difference
- Project Euler problem 62
- Project Euler Problem 48 - 求大数的模
- Project Euler Problem 81
- Project Euler problem 3
- Project Euler problem 13
- Project Euler problem 24
- Project Euler problem 36
- Project Euler problem 45
- project euler Problem 33
- project euler Problem 36
- http://projecteuler.net/problem=1
- http://projecteuler.net/problem=7 【求第10001个素数】
- http://projecteuler.net/problem=32 [Answer:45228]
- Project Euler Problem 48: Self powers