Boolean10. Даны два целых числа: $$A$$, $$B$$. Проверить истинность высказывания: «Ровно одно из чисел $$A$$ и $$B$$ нечетное».
Решение:
1 2 3 4 5 6 7 8 9 10 |
program Boolean10; var A,B: Integer; begin Write('Введите число A: '); Readln(A); Write('Введите число B: '); Readln(B); Writeln(((A mod 2<>0) and (B mod 2=0)) or ((A mod 2=0) and (B mod 2<>0)) end. |
Решение 2 от olegst1975:
1 2 3 4 5 6 7 8 9 10 11 |
program Boolean10; var A,B: Integer; begin Write('A: '); Readln(A); Write('B: '); Readln(B); Writeln((a mod 2 <> 0 ) xor (b mod 2 <> 0)); readln; end. |
Решение 3:
1 2 3 4 5 6 7 8 9 10 |
program Boolean10; var A,B: Integer; begin Write('A: '); Readln(A); Write('B: '); Readln(B); Writeln((a + b) mod 2 <> 0); end. |
Уж не знаю есть ли такая теорема, но:
нечётное ± нечётное = чётное
чётное ± чётное = чётное
чётное ± нечётное = нечётное
Другие задачи из раздела Boolean можно посмотреть здесь.
Чтобы работало с отрицательными числами — (A mod 2<>0) и (B mod 2<>0)
Поправил.
Было:
Стало:
Люблю HTML — (A mod 2 не равно 0) и (B mod 2 не равно 0)
Если код включать в тег
<pre> </pre>
или
<code> </code>
то будет выглядеть так:
Предлагаю использовать XOR(оно ж просто для этого случая) — (a mod 2 не равно 0 ) xor (b mod 2 не равно 0).
Добавил это решение. Своё оставил, хотя бы для того, что бы можно было увидеть, как правильное использование операторов может сократить код.
К стати раз пошло такое обсуждение длинное предлагаю ещё одно решение.