diff options
Diffstat (limited to 'haskell/p15.hs')
-rw-r--r-- | haskell/p15.hs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/haskell/p15.hs b/haskell/p15.hs new file mode 100644 index 0000000..41b93cf --- /dev/null +++ b/haskell/p15.hs @@ -0,0 +1,16 @@ +grid_bad 0 _ = 1 +grid_bad r c + | r == c = 2 * (grid_bad (r-1) c) + | otherwise = (grid_bad (r-1) c) + (grid_bad r (c-1)) + +grid 0 _ = 1 +grid 1 n = n + 1 +grid 2 n = sum [1..n] + n + 1 +grid r c + | r == c = 2 * (grid (r-1) c) + | otherwise = (grid (r-1) c) + (grid r (c-1)) + +p15 :: Int -> Int +p15 n = grid n n + +main = putStrLn $ "Solution: " ++ show (p15 20) |