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

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

Отвечает Янченко Кирилл.
// часовая стрелка: 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



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения этой задачи без использования условных операторов, циклов и операций сравнения, мы можем разделить ее на несколько частей:
- Вычислить количество минут в n часах и m минутах.
- Вычислить количество минут с начала текущего часа (число минут, прошедших с начала последнего часа).
- Вычислить разницу между количеством минут в n часах и м минутах и количеством минут с начала текущего часа.
- Если разница положительна, она представляет собой количество минут, которые осталось пройти до совпадения стрелок.
- Если разница отрицательна, значит, до следующего совпадения стрелок остался еще один час и количество минут, которые осталось пройти до совпадения стрелок, равно разнице минут до следующего часа минус разницу минут с начала текущего часа.
Давайте реализуем это в коде на языке Pascal (или C++):
pascalfunction 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, и она вернет количество минут, которое должно пройти до того момента, когда часовая и минутная стрелки совпадут (в том числе и на неделении).


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili