欢迎来到 常识词典网 , 一个专业的常识知识学习网站!
[ 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哪里能看到答案啊,看题目貌似是求偶数和
-askell代码:
problem2 = sum $ filter (even) $ takeW-ile(<4000000) myfiblist
w-ere myfiblist = 0 : 1 : zipWit- (+) myfiblist (tail myfiblist)
答案4613732
w-ere后面那个myfiblist生成一个fibonacci数的无限列表
takeW-ile(<40000) 取出其中<40000的
filter (even)取出其中的偶数
sum就是sum一下
答案 2:
当然使用递归。 循环一般分两种计算,一种是根据一个序列得到另一个序列,对每一个元素进行一定的操作。也就是像-p那样: -p f (x:xs) = (f x): -p f xs -p f [ ] = [ ] 所以平常使用-p就行了。 另一种是根据一个序列计算一个结果,就像fold一样(这里用foldl说明): foldl f a [ ] = a foldl f a (x:xs) = fold f (f a x) xs 所以平常用fold就行了。下一篇:孩子每天都玩魔兽的游戏,那到底是什么游戏啊,怎么有这么大的吸引力呢? 下一篇 【方向键 ( → )下一篇】
上一篇:KTV 里点歌系统可以怎么改进? 上一篇 【方向键 ( ← )上一篇】
快搜