БлогNot. Не больше двух из трёх положительных... :)

Не больше двух из трёх положительных... :)

Посмотрел, как люди решают мучаются:

Записать условие: "Заданы целые значения a,b,c. Среди них не более 2 положительных значений"

Меж тем, если решать "в лоб" - будут километровые условия, например

(a<=0) xor (b<=0) xor (c<=0) //нет или два положительных

or

(a > 0) and (b <= 0) and (c <= 0) xor
(b > 0) and (a <= 0) and (c <= 0) xor
(c > 0) and (a <= 0) and (b <= 0)      //только одно из трёх положительно

Как это часто бывает, задачу достаточно логически "перевернуть". Единственный случай, когда из трёх чисел "более двух положительных" - когда положительны все три числа. Берём от этого случая отрицание и условие элементарно записывается в виде

not ((a>0) and (b>0) and (c>0))
Проверка в MathCAD для сомневающихся :)
Проверка в MathCAD для сомневающихся :)

Кстати, условие

(a>0) xor (b>0) xor (c>0)

будет соответствовать случаю "только одно или все 3 значения положительны".

20.11.2015, 17:01 [5881 просмотр]


теги: маразм учебное mathcad

К этой статье пока нет комментариев, Ваш будет первым