29.09.2022

Язык Паскаль. Верно ли, что только одно число из пары кратно 3?

Задача. С клавиатуры вводятся два целых числа. Верно ли, что только одно число кратно 3?

Приведем примеры:

Пусть A = 12, B = 11. В этом случае ответ ДА, первое число кратно 3, а второе не кратно 3.

Пусть A = 11, B = 12. В этом случае ответ ДА, второе число кратно 3, а первое не кратно 3.

Пусть A = 12, B = 12. В этом случае ответ НЕТ, оба числа кратны 3.

Пусть A = 11, B = 11. В этом случае ответ НЕТ, оба числа не кратны 3.

Как будем решать задачу

1 способ

Проверим условие

Если число А кратно 3 и при этом число В не кратно 3 или число А не кратно 3, а число В кратно 3, то ответ ДА, иначе НЕТ.

if (A mod 3 = 0) and (B mod 3<>0) or (A mod 3<>0) and (B mod 3=0) then print('ДА') else print('НЕТ');

2 способ

Проверим условие

НЕВЕРНО, что условие (число А кратно 3) равносильно условию (число В кратно 3)

if not ((A mod 3 = 0) = (B mod 3 = 0)) then print('ДА') else print('НЕТ');

3 способ

Для проверки такого условия можно использовать логическую операцию Исключающее ИЛИ (xor), по сути она равна логическому неравенству.

if (A mod 3 = 0) xor (B mod 3 = 0) then print('ДА') else print('НЕТ');

Если ввести обозначения двум условиям X и Y, то верно следующее:

not (X = Y) равно (X xor Y)

Комментариев нет:

Отправить комментарий