Let's write β

プログラミング中にできたことか、思ったこととか

Haskell手習い

双六において、n番目のマスに停止するためのサイコロの目のでかたは何通りあるのか?という
問題がありまして、簡単な再帰なのでHaskellの練習につかえればとおもってやってみました。

import Control.Monad

findPatterns n 
        | n < 0 = 0
        | n <= 1 = 1
        | otherwise = findPatterns (n-1) + 
                findPatterns (n-2) + 
                findPatterns (n-3) + 
                findPatterns (n-4) + 
                findPatterns (n-5) + 
                findPatterns (n-6)

main = do
        line <- getLine 
        let num = read line ::Int
        when (num > 0) $ do
                        putStrLn $ show $ findPatterns num 
                        main