|
На обработку поступает натуральное число, не превышающее 10
9
. Нужно написать программу, которая выводит на экран минимальную цифру числа, делящуюся на 3. Если в числе нет цифр, делящихся на 3, на экран требуется вывести «NO». Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.
Напоминание
:
0 делится на любое натуральное число.
|
Бейсик
|
Python
|
|
DIM N, DIGIT, MINDIGIT AS LONG
INPUT N
MINDIGIT = 9
WHILE N > 0
DIGIT = N MOD 10
IF DIGIT MOD 3 = 0 THEN
IF DIGIT < MINDIGIT THEN
DIGIT = MINDIGIT
END IF
END IF
N = N \ 10
WEND
IF MINDIGIT <= 9 THEN
PRINT MINDIGIT
ELSE
PRINT "NO"
END IF
|
N = int(input())
minDigit = 9
while N > 0:
digit = N % 10
if digit % 3 == 0:
if digit < minDigit:
digit = minDigit
N = N // 10
if minDigit <= 9:
print(minDigit)
else:
print("NO")
|
|
Алгоритмический язык
|
Паскаль
|
|
алг
нач
цел
N, digit, minDigit
ввод
N
minDigit :=
9
нц
пока
N > 0
digit := mod(N,10)
если
mod(digit,
3
) = 0
то
если
digit
<
minDigit
то
digit := minDigit
все
все
N := div(N,10)
кц
если
minDigit
<= 9
то
вывод
minDigit
иначе
вывод
"
NO
"
все
кон
|
var N,digit,minDigit: longint;
begin
readln(N);
minDigit := 9;
while N > 0 do
begin
digit := N mod 10;
if digit mod 3 = 0 then
if digit < minDigit then
digit := minDigit;
N := N div 10;
end;
if minDigit <= 9 then
writeln(minDigit)
else
writeln('NO')
end.
|
|
С
++
|
|
#include <iostream>
using namespace std;
int main()
{
int N, digit, minDigit;
cin >>
N;
minDigit = 9;
while (N > 0)
{
digit = N % 10;
if (digit % 3 == 0)
if (digit < minDigit)
digit = minDigit;
N = N / 10;
}
if (minDigit <= 9)
cout <<
minDigit
<< endl;
else
cout <<
"NO"
<< endl;
return 0;
}
|
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 143.
2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку
и может быть исправлена без изменения других строк. Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.
Достаточно указать ошибки и способ их исправления для одного языка программирования.
Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
|