К списку задач
Легко Решено: 0 Процент решений: 0%

Часы, минуты и секунды

Преобразуйте продолжительность в секундах в компактную читаемую строку.

Чему вы научитесь

  • Разбивать секунды на часы, минуты и секунды
  • Использовать деление и остаток вместе
  • Собирать части в читаемую строку

Условие

Разбейте продолжительность на часы, минуты и секунды. Записывайте единицы как h, m и s, в таком порядке, с одним пробелом между единицами. Пропускайте любые единицы со значением ноль, кроме случая, когда количество секунд равно нулю — тогда выводите 0s.

Реализуйте функцию format_duration(seconds).

Ввод

seconds: Общее количество секунд в продолжительности.

Вывод

Верните отформатированную продолжительность, например 2h 2m 5s.

Ограничения

0 ≤ seconds ≤ 1,000,000,000. Часов может быть больше 23; это продолжительность, а не время суток.

Примеры

Пример 1
Ввод:
seconds = 7325

Ожидаемый вывод:
expected = "2h 2m 5s"
Ввод:
long long seconds = 7325;

Ожидаемый вывод:
std::string expected = "2h 2m 5s";
Ввод:
long seconds = 7325;

Ожидаемый вывод:
string expected = "2h 2m 5s";

Пояснение

7325 = 2 × 3600 + 2 × 60 + 5.

Пример 2
Ввод:
seconds = 120

Ожидаемый вывод:
expected = "2m"
Ввод:
long long seconds = 120;

Ожидаемый вывод:
std::string expected = "2m";
Ввод:
long seconds = 120;

Ожидаемый вывод:
string expected = "2m";

Пояснение

120 секунд — это ровно 2 минуты. Пропустите нулевые часы и секунды.

Как подступиться

Сначала попробуйте сами, затем открывайте подсказки по одной.

Подсказка 1

Сначала разбей общее число секунд на большие единицы, потом выводи только ненулевые части.

Подсказка 2

Сохраняй порядок: часы, минуты, секунды, а между включёнными единицами ставь пробелы.

Подсказка 3

Если все большие единицы равны нулю, для нулевой длительности всё равно нужно ровно 0s.

Ожидаемая сложность

O(1) по времени, O(1) дополнительной памяти

Ссылки

Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.

Учитесь у других

Решения сообщества

Пока нет опубликованных решений. Решите задание, чтобы поделиться первым.