464) На вход программы поступает натуральное число N, не превышающее 109. Требуется найти и вывести наибольшую чётную цифру в десятичной записи этого числа или вывести «NO», если таких цифр нет. К сожалению, приведённая ниже программа неправильная.
N = int(input())
t = 0
m = t
while N > 1:
d = N % 10
if d % 2 == 0 or d > m:
m = m + d
N = N // 10
if m == t:
print("NO")
else:
print(m)
var N, d, m, t: longint;
begin
read(N);
t := 0;
m := t;
while N > 1 do begin
d := N mod 10;
if (d mod 2=0) or (d>m) then
m := m + d;
N := N div 10;
end;
if m = t then
writeln('NO')
else
writeln(m)
end.
#include <iostream>
using namespace std;
int main() {
int N, d, m, t;
cin >> N;
t = 0;
m = t;
while (N > 1) {
d = N % 10;
if (d % 2 == 0 || d > m)
m := m + d;
N := N / 10;
}
if (m == t)
cout << "NO";
else
cout << m;
}
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 132.
2. Какое наибольшее число может быть выведено при вводе трёхзначного числа? Сколько существует таких чисел N, при вводе которого программа выведет такой ответ?
3. Найдите допущенные программистом ошибки и исправьте их.