Загогулины 1.3

Книга адресована школьникам средних и старших классов, желающим испытать себя в «олимпийских схватках». Может быть полезна студентам-первокурсникам и преподавателям информатики.

Модераторы: Oleg_D, Модераторы

Загогулины 1.3

Сообщение Fors » 11.07.2016 13:45:29

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


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


Подскажите как решить данную задачу?
Fors
незнакомец
 
Сообщения: 4
Зарегистрирован: 02.07.2016 17:09:09

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

Сообщение Oleg_D » 11.07.2016 19:41:04

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

Код: Выделить всё
результат := TRUE;
число:= исходное число;
пока число <> 0 выполнять
  если ((число MOD 10) MOD 2) = 1 то результат:= FALSE и прервать цикл а иначе число:= число DIV 10;
Oleg_D
постоялец
 
Сообщения: 391
Зарегистрирован: 09.05.2011 11:28:36

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

Сообщение bormant » 29.10.2016 13:25:57

Всё намного проще:
Код: Выделить всё
  while (n<>0) and not Odd(n) do n:=n div 10;
  WriteLn(n=0);
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01


Вернуться в Книга "Песни о Паскале"

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru