Вопрос по информатике:
На обработку поступает натуральное число, не превышающее 10^9. Нужно написать программу, которая выводит на экран произведение цифр числа, кратных 3. Если в числе нет цифр, кратных 3, требуется на экран вывести "NO". Программист написал программу неправильно.
Напоминание: 0 делится на любое натуральное число.
Текст написанной программистом программы (с ошибками):
var N, k, digit, prod: longint;
begin
readln(N);
prod := N mod 10;
k := 0;
while (N > 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.
Найдите все ошибки в этой программе и исправьте их, при этом не меняя весь алгоритм.
Как правило, ошибок две. Я их нашёл, но задание мне не засчитали. Помогите найти ошибки в программе, из-за которых алгоритм работает неверно!
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 21.02.2018 19:51
- Информатика
- remove_red_eye 9225
- thumb_up 48
Ответы и объяснения 1
begin
readln(N);
prod := 1; // Произведение не должно быть равно 0, в вашем случае просто отделают последнюю цифру, не проверяя ее кратна она 3 или нет
k := 0;
while (N > 0) do
begin
digit := N mod 10;
if (digit mod 3 = 0) and (digit0) then begin // (digit0) проверка на неравенство нулю(любое число*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.
- 22.02.2018 15:28
- thumb_up 14
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.