ВВЕРХ
ВНИЗ
  • Home
  • Boolean
  • Boolean 8 - 11

Проверка нечетности чисел

На этой странице мы решаем задачи boolean8 - boolean11 из задачника Абрамяна. В этих примерах речь идет об определении чётности или нечётности двух чисел. Чтобы проверить нечетность числа, будем использвать функцию odd(n), возвращающую True, если n нечетное, и False – в противном случае. Например, odd(33) возвратит True, а odd(22) возвратит False.

Вместо указанной функции можно использовать операцию mod нахождения остатка. Так, в для примеров выше (33 mod 2 = 1) возвратит True, а значение выражения (22 mod 2 = 1) будет False, так как в последнем примере остаток будет 0.

Boolean8. Даны два целых числа: A, B. Проверить истинность высказывания: «Каждое из чисел A и B нечетное».

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
var
  A, B: integer;

begin
  writeln('Введите целые числа A, B:');
  readln(A, B); { <-- Вводим целые A и B }
  writeln;
  { Если A и B нечетны, то odd(A) и odd(B) возвращают True. Но
  поскольку условия нечетности должны выполнятся одновременно,
  то мы должны использовать логический оператор and: }
  writeln('Каждое из чисел нечетное? ', odd(A) and odd(B));
  readln
end.

Boolean9. Даны два целых числа: A, B. Проверить истинность высказывания: «Хотя бы одно из чисел A и B нечетное».

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
var
  A, B: integer;

begin
  write('A = ');
  readln(A);
  write('B = ');
  readln(B);
  writeln;
  { Если A и B нечетны, то odd(A) и odd(B) возвращают 
  True. Но поскольку условие нечетности должно выполнятся 
  хотя бы для одного числа (A или B), то здесь используем 
  логический оператор or: }
  writeln('Хотя бы одно из чисел нечетное? ', odd(A) or odd(B));
  readln
end.

Boolean10. Даны два целых числа: A, B. Проверить истинность высказывания: «Ровно одно из чисел A и B нечетное».

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
var
  A, B: integer;

begin
  writeln('Введите целые числа A, B:');
  readln(A, B); 
  writeln;
  { Среди двух чисел A и B нечетным будет одно тогда и 
  только тогда, когда их сумма нечетна. Поэтому будем 
  проверять число  odd(A + B) на нечетность: }
  writeln('Ровно одно из чисел нечетное: ', odd(A + B));
  readln
end.

Во втором варианте решения используем оператор xor:

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
var
  A, B: integer;

begin
  writeln('Введите целые числа A, B:');
  readln(A, B);
  writeln;
  { Поскольку из чисел odd(A) и odd(B) только одно должно 
  возвращать True (быть нечетным), то здесь уместно 
  использование логического оператора xor (M xor N - возвращает 
  true, если только лишь одно M или N возвращает True): }
  writeln(' ', odd(A) xor odd(B));
  readln
end.

Boolean11. Даны два целых числа: A, B. Проверить истинность высказывания: «Числа A и B имеют одинаковую четность».

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
var
  A, B: integer;

begin
  writeln('Введите числа целые A, B:');
  readln(A, B);
  writeln;
  { Если числа A и B имеют одинаковую четность, тогда 
  их сумма будет четна и odd(A + B) возвратит false. 
  Поэтому оператор not odd(A + B) возвратит true: }
  writeln(not odd(A + B));
  readln
end.

Второй вариант решения задачи Boolean11:

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
var
  A, B: integer;

begin
  writeln('Введите целые числа A, B:');
  readln(A, B);  
  writeln;
  { Числа A и B будут иметь одинаковую четность тогда и 
  только тогда, когда их сумма четна. Поэтому, увеличив 
  сумму на 1, получим нечетное число A + B + 1: }
  writeln(odd(A + B + 1));
  readln
end.



Яндекс.Метрика