Страница 1 из 1

Загогулины 1.3

СообщениеДобавлено: 11.07.2016 13:45:29
Fors
Можно использовать следующие:
· Целочисленный тип данных
· Ввод и вывод чисел
· Арифметические операции с числами, сравнение чисел
· Булев тип данных
· Ввод и вывод булевых данных
· Логические операции
· Условные операторы IF-THEN-ELSE и CASE-OF
· Цикл с проверкой в конце
· Генерация случайных чисел


Задача
Вводится число, программа должна напечатать TRUE (или FALSE в противном случае),
если запись этого числа содержит только чётные цифры.
Контрольные примеры:
Входные данные Результат
4206 TRUE
212 FALE


Подскажите как решить данную задачу?

Re: Загогулины 1.3

СообщениеДобавлено: 11.07.2016 19:41:04
Oleg_D
Надо организовать цикл разложения исходного числа на цифры. Если будет обнаружена нечётная цифра, то цикл прекратить, и результатом назначить FALSE. Если цикл не прервётся, то результат = TRUE. Для определения очередной младшей цифры использовать операцию MOD 10 -- вычисление остатка от деления на 10. Для определения нечётности использовать операцию MOD 2 -- вычисление остатка от деления на 2. Примерно так:

Код: Выделить всё
результат := TRUE;
число:= исходное число;
пока число <> 0 выполнять
  если ((число MOD 10) MOD 2) = 1 то результат:= FALSE и прервать цикл а иначе число:= число DIV 10;

Re: Загогулины 1.3

СообщениеДобавлено: 29.10.2016 13:25:57
bormant
Всё намного проще:
Код: Выделить всё
  while (n<>0) and not Odd(n) do n:=n div 10;
  WriteLn(n=0);