Задача
У Деда Мороза есть часы, которые в секундах показывают сколько осталось до каждого Нового Года. Так как Дед Мороз уже человек в возрасте, то некоторые математические операции он быстро выполнять не в состоянии. Помогите Деду Морозу определить сколько полных дней, часов, минут и секунд осталось до следующего Нового Года, если известно сколько осталось секунд, т.е. разложите время в секундах на полное количество дней, часов, минут и секунд.
Входные данные
В единственной строке целое число [latex]N \left(0 < N ≤ 31500000\right)[/latex] – количество секунд, которые остались до наступления Нового Года.
Выходные данные
В одной строке через пропуск четыре целых числа – количество полных дней, часов, минут и секунд. После последнего числа пробел отсутствует.
Тесты
# | Входные данные | Выходные данные |
---|---|---|
1 | 5217656 | 60 9 20 56 |
2 | 7999 | 0 2 13 19 |
3 | 30123456 | 348 15 37 36 |
4 | 7841186 | 90 18 6 26 |
5 | 899650 | 10 9 54 10 |
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import java.util.*; import java.lang.*; import java.io.*; import java.util.Scanner; class Main { public static void main (String[] args) throws java.lang.Exception { Scanner in = new Scanner(System.in); int n = in.nextInt(); System.out.print(n/86400 + " " + (n%86400)/3600 + " " + ((n%86400)%3600)/60 + " " + n%60); } } |
Решение задачи
Вспомним, что:
1 сутки = 86400с;
1 час = 3600с;
1 минута = 60с.
Сперва рассчитаем кол-во полных суток в данном кол-ве секунд [latex]n[/latex]: [latex]\frac{n}{86400}[/latex].
Затем уберём кол-во секунд в полных сутках из исходного числа, а из оставшихся вычислим кол-во полных часов: [latex]\frac{n\bmod86400}{3600}[/latex].
Далее снова уберём кол-во секунд в полных часах и найдём кол-во полных минут: [latex]\frac{\left(n\bmod8640\right)\bmod3600}{60}[/latex].
Остаток от деления общего кол-ва секунд на [latex]60[/latex] и будет искомым кол-вом секунд: [latex]n\bmod60[/latex].