Вопрос задан 01.08.2023 в 03:42. Предмет Информатика. Спрашивает Книшик Тетяна.

Pascal / C++ На вход программе подаются два целых числа: n и m, каждое в отдельной строке 0 <

n <= 12 0 <= m < 60, указывающие момент времени "n часов m минут". Определите наименьшее число полных минут, которое должно пройти до того момента, когда часовая и минутная стрелки ни циферблате совпадут, не обязательно на каком-то делении. Вещественную арифметику не использовать. Задачу необходимо решить без использования условных операторов (в том числе без тернарного оператора ?: в С++) и\или циклов. Кроме того нельзя использовать операции сравнения и логический (булевский) тип данных. Примеры входные данные 2 50 выходные данные 26 входные данные 3 0 выходные данные 16
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Янченко Кирилл.
// часовая стрелка: 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
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи без использования условных операторов, циклов и операций сравнения, мы можем разделить ее на несколько частей:

  1. Вычислить количество минут в n часах и m минутах.
  2. Вычислить количество минут с начала текущего часа (число минут, прошедших с начала последнего часа).
  3. Вычислить разницу между количеством минут в n часах и м минутах и количеством минут с начала текущего часа.
  4. Если разница положительна, она представляет собой количество минут, которые осталось пройти до совпадения стрелок.
  5. Если разница отрицательна, значит, до следующего совпадения стрелок остался еще один час и количество минут, которые осталось пройти до совпадения стрелок, равно разнице минут до следующего часа минус разницу минут с начала текущего часа.

Давайте реализуем это в коде на языке Pascal (или C++):

pascal
function FindMinutesToMatch(n, m: integer): integer; var totalMinutes, minutesInNHours, minutesInMMins, minutesSinceLastHour, minutesToNextHour, remainingMinutes: integer; begin // Вычисление общего количества минут в n часах и m минутах totalMinutes := n * 60 + m; // Вычисление количества минут в n часах и m минутах minutesInNHours := n * 60; // Вычисление количества минут в m минутах minutesInMMins := m; // Вычисление количества минут с начала текущего часа minutesSinceLastHour := minutesInMMins - minutesInNHours; // Вычисление количества минут до следующего часа minutesToNextHour := 60 - minutesSinceLastHour; // Вычисление оставшихся минут до совпадения стрелок remainingMinutes := minutesSinceLastHour - minutesToNextHour; // Возвращаем результат FindMinutesToMatch := remainingMinutes; end;

Вы можете вызвать эту функцию с входными данными n и m, и она вернет количество минут, которое должно пройти до того момента, когда часовая и минутная стрелки совпадут (в том числе и на неделении).

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос