小编Lia*_*ams的帖子

Euler项目#2适用于大范围

我有一个针对Project Euler Problem 2的Haskell解决方案,它适用于四百万限制,以及最多10 ^ 100000的限制,在我的机器上只需几秒钟.

但是对于任何更大的东西,例如10 ^ 1000000,计算都不会及时返回,如果有的话(尝试离开它几分钟).这里的限制因素是什么?

evenFibonacciSum :: Integer -> Integer
evenFibonacciSum limit = 
  foldl' (\t (_,b) -> t + b) 0 . takeWhile ((<=limit) . snd) . iterate doIteration $ (1,2) where
    doIteration (a, b) = (twoAB - a, twoAB + b) where
      twoAB = 2*(a + b)
Run Code Online (Sandbox Code Playgroud)

haskell

2
推荐指数
1
解决办法
220
查看次数

标签 统计

haskell ×1