Матч 144, Время (Time)

Дивизион 2, Уровень 1

 

Время представляется строкой в формате “<H>:<M>:<S>”, где <H>, <M> и <S> – соответственно количество часов, минут и секунд. Необходимо по количеству секунд, прошедших после полночи, определить время в представленном выше формате.

 

Класс: Time

Метод: string whatTime(int seconds)

Ограничения: 0 £ seconds £ 24*60*60 – 1 = 86399.

 

Вход. Количество секунд seconds, прошедшее после полночи.

 

Выход. Время в формате “<H>:<M>:<S>”, соответствующее seconds секундам, прошедшим после полночи.

 

Пример входа

seconds

0

3661

86399

 

Пример выхода

“0:0:0”

“1:1:1”

23:59:59

 

 

РЕШЕНИЕ

обработка строк

 

Количество искомых часов равно seconds / 3600, минут seconds % 3600 / 60, секунд seconds % 60. Выводим в символьный массив s эти значения при помощи команды sprintf и возвращаем его, предварительно преобразовав в тип string.

 

ПРОГРАММА

 

#include <cstdio>

#include <string>

using namespace std;

 

class Time

{

public:

  string whatTime(int seconds)

  {

    char s[100];

    sprintf(s,"%d:%d:%d",seconds/3600,seconds%3600/60,seconds%60);

    return string(s);

  }

};