На вход программы поступает натуральное число N, не превышающее 10
9. Требуется найти и наибольшую нечётную цифру в десятичной записи этого числа или вывести «NO», если таких цифр нет. К сожалению, приведённая ниже программа неправильная.
Pascal |
Python |
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 = 1) or (d > m) then
m := d;
N := N div 10
end;
if m = t then
writeln('NO')
else writeln(m)
end. |
N = int(input())
t = 0
m = t
while N > 1:
d = N % 10
if d % 2 == 1 or d > m:
m = d
N = N // 10
if m == t:
print("NO")
else:
print(m) |
С++ |
|
#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 == 1 || d > m)
m = d;
N = N /10;
}
if (m == t)
cout << "NO";
else
cout << m;
return 0;
} |
|
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 815.
2. Какое наименьшее число может быть выведено при работе этой программы? Приведите пример числа N, при вводе которого программа выведет такой ответ.
3. Найдите допущенные программистом ошибки и исправьте их.