solution to egg drop
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

18 lines
381B

  1. eggDrop :: Integer -> Integer -> Integer
  2. eggDrop n k
  3. | k == 1 || k == 0 || n == 1 = k
  4. | otherwise = 1 + (minimum $ map (\i -> f i) [1..k])
  5. where
  6. f i = max (eggDrop (n-1) (i-1)) (eggDrop n (k-i))
  7. -----------------
  8. -- gross io bs --
  9. -----------------
  10. main :: IO ()
  11. main = do
  12. l <- getLine
  13. let (n:k:_) = map read $ words l :: [Integer]
  14. putStrLn $ show $ eggDrop n k