24小时热门版块排行榜    

查看: 2774  |  回复: 8
本帖产生 1 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

holmescn

金虫 (正式写手)

[交流] Euler 工程 第二题:Fibonacci数列中小于4百万的偶数的和 已有7人参与

前一题仍在征集中,大家要继续想算法啊!

今天帖出第二题:
求Fibonacci数列中所有小于4百万的偶数的和。

Fibonacci数列大家都知道吧,就是兔子数列啊,列出前10项是:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

当然也有第0项是1的写法,不过1不是偶数,不会影响结果的。

这个比上一次的那个有挑战性喔!

别忘了1分钟原则!

[ Last edited by holmescn on 2011-5-12 at 15:08 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)

★ ★
微尘、梦想(金币+2): 鼓励交流! 2011-05-09 17:55:10
嘿嘿,看我的Mathematica版:
CODE:
F[n_] := (((1 + Sqrt[5])/2)^(3 n) - ((1 - Sqrt[5])/2)^(3 n))/Sqrt[5];
n = 1; sum = 0;
While[F[n] < 4000000, sum += F[n]; n++]
Simplify[sum]

这里用到了Fibnacci数列的通项公式:


这里,n变成3n,则得到所有的偶数项。可惜这个算法只有在mathematica里好用。
6楼2011-05-09 14:47:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

微尘、梦想

木虫 (知名作家)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3, 程序强帖+1): 鼓励交流!以前的补上! 2011-06-04 19:26:38
#include "stdio.h"
void main(void)
{
    int i=1,j=1,n=0;
    for(;i<4000000&&j<4000000; )
    {
         i+=j;
         if(i%2==0) n+=i;
         j+=i;
         if(j%2==0) n+=j;
    }
    printf("%d\n",n);
}
结果:4613732
不知道对不对,不过我用小于10的项计算结果是10,另外时间不是问题,结果是瞬间出来的,一直不知道如何调用系统时间来计算程序运行的时间,希望高手指点一下,谢谢!

[ Last edited by 微尘、梦想 on 2011-5-8 at 18:24 ]
任风云变幻,我笑对人生!
2楼2011-05-08 18:23:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
微尘、梦想(金币+2): 谢谢参与! 2011-05-09 17:54:20
跟楼上超级像的代码
matlab 的
CODE:
a = 1;
b = 2;
n = 2
tic;
while (a<4000000 && b<4000000)
   a = a+b;
   if mod(a,2)==0
       n = n+a;
   end
   b = a+b;
   if mod(b,2)==0
       n = n+b;
   end
end
toc;
n

结果及运行时间
CODE:
Elapsed time is 0.000008 seconds.
n =
     4613732

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼2011-05-09 01:28:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xioooli

金虫 (小有名气)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
微尘、梦想(金币+2): 谢谢参与! 2011-05-09 17:54:36
python
CODE:
def Fibonacci(n):
    a,b = 1,2
    while a < n:
        yield a
        a,b = b,a+b

print sum([i for i in Fibonacci(4000000) if i%2==0])

bash
CODE:
n1=1
n2=2
fib=2
result=0
while [ $fib -lt 4000000 ]; do
        if [ "$(($fib%2))" = 0 ]; then
                echo $fib
                result=$(($result+$fib))
        fi
        fib=$(($n1+n2))
        n1=$n2
        n2=$fib
done
echo result = $result

4楼2011-05-09 14:05:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 286求调剂 +10 Faune 2026-03-21 10/500 2026-03-21 23:34 by 314126402
[考研] 0703化学调剂 ,六级已过,有科研经历 +14 曦熙兮 2026-03-15 14/700 2026-03-21 19:12 by ColorlessPI
[考研] 求助 +5 梦里的无言 2026-03-21 6/300 2026-03-21 17:51 by 学员8dgXkO
[考研] 317求调剂 +9 申子申申 2026-03-19 15/750 2026-03-21 17:31 by 学员8dgXkO
[考研] 求调剂 +3 .m.. 2026-03-21 4/200 2026-03-21 16:25 by barlinike
[考研] 南昌大学材料专硕311分求调剂 +6 77chaselx 2026-03-20 6/300 2026-03-21 07:24 by JourneyLucky
[考研] 310求调剂 +3 baibai1314 2026-03-16 3/150 2026-03-21 03:56 by JourneyLucky
[考研] 301求调剂 +10 yy要上岸呀 2026-03-17 10/500 2026-03-21 03:14 by JourneyLucky
[考研] 一志愿 西北大学 ,070300化学学硕,总分287,双非一本,求调剂。 +3 晨昏线与星海 2026-03-18 3/150 2026-03-21 00:46 by JourneyLucky
[考研] 一志愿西南交大,求调剂 +5 材化逐梦人 2026-03-18 5/250 2026-03-21 00:26 by JourneyLucky
[考研] 考研调剂求学校推荐 +3 伯乐29 2026-03-18 5/250 2026-03-20 22:59 by JourneyLucky
[考研] 323求调剂 +3 洼小桶 2026-03-18 3/150 2026-03-20 22:54 by JourneyLucky
[考研] 一志愿武汉理工材料工程专硕调剂 +9 Doleres 2026-03-19 9/450 2026-03-20 22:36 by JourneyLucky
[考研] 287求调剂 +7 晨昏线与星海 2026-03-19 8/400 2026-03-20 22:19 by JourneyLucky
[考研] 08工学调剂 +5 用户573181 2026-03-20 5/250 2026-03-20 15:47 by xia_2003
[考博] 招收博士1-2人 +3 QGZDSYS 2026-03-18 3/150 2026-03-20 11:58 by 呱呱呱呱叫
[考研] 293求调剂 +11 zjl的号 2026-03-16 16/800 2026-03-18 08:10 by zhukairuo
[考研] 一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项 +6 大火山小火山 2026-03-16 8/400 2026-03-17 15:05 by 无懈可击111
[考研] 材料工程专硕274一志愿211求调剂 +6 薛云鹏 2026-03-15 6/300 2026-03-17 11:05 by 学员h26Tkc
[考研] 321求调剂 +5 大米饭! 2026-03-15 5/250 2026-03-16 16:33 by houyaoxu
信息提示
请填处理意见