歡迎來到 常識詞典網(wǎng) , 一個專業(yè)的常識知識學習網(wǎng)站!
[ Ctrl + D 鍵 ]收藏本站
比如: sum = 1; pre_num = 1; num = 2; w-ile num <= 40000 if num%2 == 0 t-en sum += num [num, pre_num] = [num+pre_num, num]
console.log sum
原題: projecteuler.net/problem=2
Eac- new term in t-e Fibonacci sequence is generated by adding t-e previous two terms. By starting wit- 1 and 2, t-e first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering t-e terms in t-e Fibonacci sequence w-ose values do not exceed four million, find t-e sum of t-e even-valued terms.
2 個答案答案 1:
抱歉剛才看成40000了,原來是4百萬
那個projectEuler哪里能看到答案啊,看題目貌似是求偶數(shù)和
-askell代碼:
problem2 = sum $ filter (even) $ takeW-ile(<4000000) myfiblist
w-ere myfiblist = 0 : 1 : zipWit- (+) myfiblist (tail myfiblist)
答案4613732
w-ere后面那個myfiblist生成一個fibonacci數(shù)的無限列表
takeW-ile(<40000) 取出其中<40000的
filter (even)取出其中的偶數(shù)
sum就是sum一下
答案 2:
當然使用遞歸。 循環(huán)一般分兩種計算,一種是根據(jù)一個序列得到另一個序列,對每一個元素進行一定的操作。也就是像-p那樣: -p f (x:xs) = (f x): -p f xs -p f [ ] = [ ] 所以平常使用-p就行了。 另一種是根據(jù)一個序列計算一個結(jié)果,就像fold一樣(這里用foldl說明): foldl f a [ ] = a foldl f a (x:xs) = fold f (f a x) xs 所以平常用fold就行了。下一篇:孩子每天都玩魔獸的游戲,那到底是什么游戲啊,怎么有這么大的吸引力呢? 下一篇 【方向鍵 ( → )下一篇】
上一篇:KTV 里點歌系統(tǒng)可以怎么改進? 上一篇 【方向鍵 ( ← )上一篇】
快搜