Задача из собеседования

Завдання 1:
Програмування на C++ часто пов’язане з C, а відповідно — з поняттями швидкодії і малими одиницями часу. На практиці найменшою одиницею часу є наносекунда — максимально можлива точність виміру в звичайних системах. При низькорівневій розробці також оперують мілісекундами (швидкодія алгоритмів) чи мікросекундами (мітки часу в медіа).

Для ознайомлення з цими величинами і їх типовими позначеннями, необхідно розробити алгоритм, який розбиває мітку часу в наносекундах (timestamp) на:

  • Дні (d — days)
  • Години (h — hours)
  • Хвилини (m — minutes)
  • Секунди (s — seconds)
  • Мілісекунди (ms — milliseconds)
  • Мікросекунди (us — microseconds). Латинська u тут заміняє грецьку μ.
  • Наносекунди (ns — nanoseconds)

Всі величини мають бути виведені на екран зі своїм суфіксом.

Приклад роботи

Enter the timestamp (ns): 88702401174195007
1026d 15h 33m 21s 174ms 195us 7ns

Решение задачи

#include <iostream>

using namespace std;

int main (){
    long long int time = 88702401174195007;
    //cout << "enter the timestamp: "; cin >> time;
    long long int d, h, m, s, ms, us, ns;

    d = time / 24 / 60 / 60 / 1000 / 1000 / 1000; 
    cout << d << "d ";

    h = time / 60 / 60 / 1000 / 1000 / 1000 % 24; 
    cout << h << "h ";

    m = time / 60 / 1000 / 1000 / 1000 % 60;
    cout << m << "m ";

    s = time / 1000 / 1000 / 1000 % 60;
    cout << s << "s ";

    ms = time / 1000 / 1000 % 1000;
    cout << ms << "ms ";

    us = time / 1000 % 1000;
    cout << us << "us ";

    ns = time % 1000;
    cout << ns << "ns ";

    return 0;
}

Комментарии

Один комментарий на ««Задача из собеседования»»

  1. Правильный ответ от куратора.

    ответ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Максимальный размер загружаемого файла: 1 ГБ. Вы можете загрузить: изображение, аудио, видео, документ, таблица, интерактив, текст, архив, код, другое. Ссылки на YouTube, Facebook, Twitter и другие сервисы, вставленные в текст комментария, будут автоматически встроены. Перетащите файл сюда