Решение Python Задача «Электронные часы»
Условие
Дано число n. С начала суток прошло n минут. Определите, сколько часов и минут будут показывать электронные часы в этот момент. Программа должна вывести два числа: количество часов (от 0 до 23) и количество минут (от 0 до 59). Учтите, что число n может быть больше, чем количество минут в сутках.
timer = int(input())
day = timer % 1440
hours = day // 60
minutes = day % 60
print(hours, minutes)
Теперь разберем построчно:
timer = int(input()) – ввод числа, функция int() говорит о том что вводимое число будет числом.
day = timer % 1440 – так как в условии задачи сказано что вводимое число может быть больше чем минут в сутках, надо сначала вычислить, а сколько суток вмещается в заданном числе. 24 часа в сутках * 60 = 1440 минут.
Оператор % делит число и присваивает остаток от деления переменной day. Этим действием мы отделили количество суток в заданном числе и оставили только оставшиеся минуты. Например: 1500 % 1440 = 60 потому что 1500 = 1440*1 + 60
Прошло меньше суток:1439 % 1440 = 1439 → ничего не меняется
Прошли ровно сутки: 1440 % 1440 = 0 → часы снова покажут 00:00
hours = day // 60 – этим действием считаем, сколько часов входит в полученные минуты. Делаем деление без остатка, получаем часы.
minutes = day % 60 – этим действием получаем остаток от минут. Т.е. отсекаем сколько часов входит в полученные минуты и получаем остаток от них, это и будут минуты.
print(hours, minutes) – ну и печатаем результат.
Самый короткий вариант решения
n = int(input())
print((n // 60) % 24, n % 60)
Но такой вариант не позволит проводить какие либо дальнейшие действия с результатами, так как данные не записаны в переменных.
| Входные данные | Правильный ответ |
| 150 | 2 30 |
| 1441 | 0 1 |
| 444 | 7 24 |
| 180 | 3 0 |
| 1439 | 23 59 |
| 1440 | 0 0 |
| 2000 | 9 20 |
| 3456 | 9 36 |
| 5678 | 22 38 |
| 9876 | 20 36 |
Leave a Reply