На обработку поступает естественное число, не превышающее 10^9. Необходимо написать программку,

На обработку поступает естественное число, не превышающее 10^9. Необходимо написать программку, которая выводит на экран произведение цифр числа, кратных 3. Если в числе нет цифр, кратных 3, требуется на экран вывести "NO". Программер написал программку ошибочно.
Напоминание: 0 делится на хоть какое естественное число.
Текст написанной программером программы (с ошибками):
var N, k, digit, prod: longint;
begin
readln(N);
prod := N mod 10;
k := 0;
while (N gt; 0) do begin
digit := N mod 10;
if (digit mod 3 = 0) then begin
prod := prod*digit;
k := k+1;
end;
N := N div 10;
end;
if (k = 0) then
writeln('NO')
else
writeln(N)
end.
Найдите все ошибки в этой программке и исправьте их, при этом не меняя весь метод.
Как правило, ошибок две. Я их нашёл, но задание мне не засчитали. Помогите найти оплошности в программке, из-за которых метод работает ошибочно!

Задать свой вопрос
Сьянова Элина
Конкретно
Дарья Гильденскиоль
Именно
1 ответ
Var N, k, digit, prod: longint;
begin
  readln(N);
  prod := 1; // Творенье не обязано быть равно 0, в вашем случае просто отделают последнюю цифру, не проверяя ее кратна она 3 либо нет
  k := 0;
  while (N gt; 0) do 
  begin
    digit := N mod 10;
    if (digit mod 3 = 0) and (digitlt;gt;0) then begin // (digitlt;gt;0) проверка на неравенство нулю(хоть какое число*0=0)
    prod := prod*digit;
    k := k+1;
    end;
    N := N div 10;
  end;
  if (k = 0) 
  then writeln('NO')
  else writeln(prod) // Выводить необходимо не окончательное N, а конкретно произведение(prod)
end.
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт