Skip to content

Instantly share code, notes, and snippets.

@adachic
Created April 8, 2013 02:35
Show Gist options
  • Save adachic/5333802 to your computer and use it in GitHub Desktop.
Save adachic/5333802 to your computer and use it in GitHub Desktop.
問題2改良型
{-
- Problem 2
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
- -}
{-
makeFibonatchList :: [Int] -> [Int]
makeFibonatchList a
| (last a) > 4000000 = init a
| otherwise = makeFibonatchList $ reverse $ ((sum $ ( last a ):( last (init a) ):[] ):reverse a)
- -}
makeFibonatchList fibs = 1 : 1 : (map (uncurry (+)) $ zip fibs (tail fibs))
main = do print $ sum $ filter even $ makeFibonatchList [1,2]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment