Для каждого теста вывести в отдельной строке минимальный угол между стрелками в градусах в формате, приведенном в примере [требует правки]

276
21 января 2017, 12:16

Интервал углов между часовой и минутной стрелками часов от 0 до 180 градусов (включая углы в 0 и 180 градусов). Например, когда на часах 12 часов, то угол между стрелками 0 градусов, а когда 6:00, то соответственно 180 градусов. Вычислите угол между часовой и минутной стрелками в интервале времени от 12:00 до 11:59. Входные данные

Состоит из нескольких тестов. Каждый тест состоит из одной строки и содержит 2 целых числа, разделённых пробелом: первое число показывает количество часов (от 0 до 12) а второе соответственно количество минут (в интервале [0, 59]). Послденяя строка содержит два нуля и не обрабатывается. Выходные данные

Для каждого теста вывести в отдельной строке минимальный угол между стрелками в градусах в формате, приведенном в примере.

Входные данные #1

12 0 12 30 6 0 3 0 0 0

Выходные данные #1

At 12:00 the angle is 0.0 degrees. At 12:30 the angle is 165.0 degrees. At 6:00 the angle is 180.0 degrees. At 3:00 the angle is 90.0 degrees.

Answer 1

В общем раз всё равно написал код в комментарии, оформлю ответом.

char z[40000];
long long mod(long long mm){
    long long r = 0;
    for (int i=0; z[i]; i++){
        r %= mm;
        r*=10;
        r+= z[i] - '0';
    }
    return r%=mm;
}
int main ()
{
    gets(z);
    long long R[2];
    R[0] = mod(1000000000039LL);
    R[1] = mod(999999999989LL);
    for (int i=2;i<=10000;i++){
        long long Q[2] = {1,1};
        for (int j=i;j<=10000;j++){
            Q[1] *= j;
            Q[1] %= 999999999989LL;
            Q[0] *= j;
            Q[0] %= 1000000000039LL;
            if (Q[0] == R[0] && Q[1] == R[1]){
                printf("%d %d",i,j);
                return 0;
            }
        }
    }
}

Просто вычисляем произведение по модулю. В нормальных задачах советую использовать ~10 простых числе для вычисления модулей.

P.S. тесты настолько слабые что можно обойтись вычислением по 1 модулю вместо многих.

READ ALSO
Курсор в конец строки

Курсор в конец строки

Есть edit control, на который я навожу фокус через setFocus, но при этом курсор оказывается в начале строкиКак его перенести в конец?

381
Указатель на массив объектов класса

Указатель на массив объектов класса

Создаётся в классе Logic массив объектов класса Players

295
Проблема с изменением значения gcc -D

Проблема с изменением значения gcc -D

Добрый день, проблема при переопределении значения OS через gcc -D OS=2 tstc После выводит что значение переопределено

266
Полиморфизм при работе с TGUI

Полиморфизм при работе с TGUI

В классе SelectLevel существует функция drawLevels(tgui::Gui& gui, sf::RenderWindow& window, string name), которая принимает указатель на окно и окно виджетов для библиотек...

316