import Text.Printf main = h 36 2650.00 >> putStrLn "" >> h 15 1220.00 where f :: (Int,Double,Double,Double) -> (Int,Double,Double,Double) f (m,k,d,acc) = (m+1, k*1.01 - 88, k*0.01, acc + k*0.01) g (m,k,d,acc) = printf " %2d %7.2f %7.2f %7.2f" m k d acc h n k = mapM_ (putStrLn . g) . take (n+1) . iterate f $ (0,k,0,0)