let minute_to_hour m = (m / 60) mod 24 let waketime n h m t = let rec wakeminutes n' m' = if n' = 1 then (* 0ではない *) let hour = minute_to_hour m' in let minute = m' mod 60 in Printf.printf "%d\n%d\n" hour minute else wakeminutes (n'- 1) (m' + t) in wakeminutes n (h * 60 + m) let exe () = print_endline "\nInput values."; print_endline " nidone times = ?"; let n = int_of_string (read_line ()) in print_endline " alarm rings at (hour) = ?"; let h = int_of_string (read_line ()) in print_endline " alarm rings at (minute) = ?"; let m = int_of_string (read_line ()) in print_endline " alarm ringing interval (minute) = ?"; let t = int_of_string (read_line ()) in waketime n h m t let rec try_exe () = try exe () with Failure "int_of_string" -> print_newline (); try_exe () let () = try_exe ()