Консультация № 144841
24.09.2008, 07:33
0.00 руб.
0 1 1
Здравствуйте, уважаемые эксперты! Помогите решить задачу:
Даны 2 числа: "а" и "b". Если а/b или b/а, то вывести на экран единицу. В противном случае вывести ноль. Нельзя пользоваться условным оператором (if...then...else) и циклами.
Я думал решить через оператор выбора (case), но никак не могу сообразить, как это лучше сделать. Если есть и другие варианты решения, то можете привести и их.

Обсуждение

давно
Профессор
401888
1232
24.09.2008, 08:19
общий
это ответ
Здравствуйте, Даниил Цветков!
Я так понял, что условие если a делится нацело на b или наоборот, то истина, иначе ложь. Здесь не надо никаких операторов, поскольку есть логический тип boolean, с помощью которого можно определить истинно выражение (true) или ложно(false). Порядковый номер true = 1, false =0. Порядковый номер возвращается функцией Ord. Код в приложении.


Приложение:
uses crt;
var a,b:integer;
begin
clrscr;
write('a=');readln(a);
write('b=');readln(b);
write(ord((a mod b=0)or(b mod a=0)));
readln
end.
Форма ответа