Mif 16

Условие :

Вычислите какой минимальное количество команд ветвления необходимо использовать для того, чтобы запрограммировать [latex]n[/latex] вариантов поведения. Докажите свою оценку.

Решение :

Команда ветвления (конструкция «if {} else {}» или тернарный оператор «?» ) разделяет код программы с какого-то момента ровно на 2 независимых алгоритма (даже при отсутствии блока «else {}», так как программа продолжает выполняться в зависимости от того, сработал блок «if {}», или нет). Таким образом, если понимать под «вариантов поведения» изолированный блок кода, выполняемый при совпадении набора условий, чтобы разбить программу на [latex]n[/latex] таких независимых вариантов, нужно использовать ровно [latex]n — 1[/latex] условную операцию.

Тесты : 

Входные данные 12 7 1 0
Выходные данные 11 6 0 Ошибка ввода

Код :

Ссылка на рабочий код:

Ideone.com

Related Images:

One thought on “Mif 16

  1. Несложная задача, но важные размышления. Вариант поведения программы это путь от входа в программу до выхода из неё. Иногда этот путь называют протоколом работы программы. В линейной программе такой путь только один. Каждый разумный условный оператор добавляет ещё один вариант пути.

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