Предмет: Информатика,
автор: MLVdev
Pascal / C++
На вход программе подаются два целых числа: n и m, каждое в отдельной строке 0 < n <= 12 0 <= m < 60, указывающие момент времени "n часов m минут". Определите наименьшее число полных минут, которое должно пройти до того момента, когда часовая и минутная стрелки ни циферблате совпадут, не обязательно на каком-то делении. Вещественную арифметику не использовать.
Задачу необходимо решить без использования условных операторов (в том числе без тернарного оператора ?: в С++) и\или циклов. Кроме того нельзя использовать операции сравнения и логический (булевский) тип данных.
Примеры
входные данные
2
50
выходные данные
26
входные данные
3
0
выходные данные
16
Ответы
Автор ответа:
9
// часовая стрелка: 1 час - 30 град, 2 мин - 1 град
// минутная стрелка: 1 мин - 6 град
// m*6+k*6-360 = (n*60+m+k)/2
var n,m,k:integer;
begin
readln(n);
readln(m);
k:=(60*n-11*m+720) mod 360 div 11;
writeln(k);
end.
Пример:
2
50
26
// минутная стрелка: 1 мин - 6 град
// m*6+k*6-360 = (n*60+m+k)/2
var n,m,k:integer;
begin
readln(n);
readln(m);
k:=(60*n-11*m+720) mod 360 div 11;
writeln(k);
end.
Пример:
2
50
26
kusosuha6vt:
Как ты из первого равенства получил k?
print((60*n-11*m+720)%360//11)
Интересные вопросы
Предмет: Физика,
автор: milli55
Предмет: Английский язык,
автор: Cuenta
Предмет: Английский язык,
автор: qwieeeerty
Предмет: Математика,
автор: emiliyalevchen
Предмет: Химия,
автор: yloka2001