@dentantello
Студент

Записать условие, которое является истинным?

Записать условие, которое является истинным, когда:
- только одно из чисел X, Y и Z кратно пяти

я додумался только до ((X%5 ==0) ^ (Y%5 ==0)) ^ (Z%5 == 0)

Так же, есть условие, не использовать более 3 операторов сравнения
  • Вопрос задан
  • 2082 просмотра
Решения вопроса 2
@bizon2000
Java-программист
Рассмотрим выражение вида
((X + 1) % 5) * ((X + 2) % 5) * ((X + 3) % 5) * ((X + 4) % 5)

Если X кратен 5, то значение выражения будет равно 1*2*3*4 = 24, иначе оно будет равно 0, т.к. один из сомножителей будет равен 0.
Учитывая эти рассуждения решением будет следующее выражение
(((X + 1) % 5) * ((X + 2) % 5) * ((X + 3) % 5) * ((X + 4) % 5) +
 ((Y + 1) % 5) * ((Y + 2) % 5) * ((Y + 3) % 5) * ((Y + 4) % 5) +
 ((Z + 1) % 5) * ((Z + 2) % 5) * ((Z + 3) % 5) * ((Z + 4) % 5)
) == 24

Т.к. если все 3 значения не кратны 5, то сумма будет равна 0, если ровно одно значение будет кратно 5, то сумма будет равна 24, а если более, чем одно значение кратно 5, то сумма будет 48 или 72.
Так что, как видите, достаточно одного оператора сравнения.

PS: Ваше решение выдает неправильное значение в случае, если все три значения кратны 5.
Ответ написан
alsopub
@alsopub
((X%5)*(Y%5) > (X%5)*(Y%5)*(Z%5)) | ((X%5)*(Z%5) > (X%5)*(Y%5)*(Z%5)) | ((Y%5)*(Z%5) > (X%5)*(Y%5)*(Z%5))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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