Дано натуральное число, не превышающее 108 . Нужно написать
программу, которая выводит на экран максимальную цифру числа,
меньшую 7. Если в числе нет цифр, меньших 7, требуется на экран вывести
«NO». Программист написал программу неправильно.
Найдите в программе все ошибки (их может быть одна или несколько).
Для каждой ошибки выпишите строку, в которой она допущена, и
приведите эту же строку в исправленном виде
(Паскаль)
var N, d, m: longint;
begin
readln(N);
m := 0;
while N > 0 do begin
d := N mod 10;
if d < 7 then
if m < d then m := d;
N := N div 10;
end;
if m = 0 then writeln('NO')
else writeln(m)
end.
"...напечатает сначала 2, потом - 6" -- это значит a=2 и b=6?
про пятеричные записи ничего не понял... :) И ИМХО к чему такие сложности? И для чего нам комп и программа? Я подправил исходную прогу чтобы она выдавала все числа подходящие по условию
var x,a,b: longint;
begin
for var i := 999 DownTo 100 do begin
a := 0;
b := 1;
x := i;
while x>0 do begin
if x mod 2 > 0 then a := a+1 else b := b+(x mod 5);
x := x div 5;
end;
if (a = 2) and (b = 6) then writeln('x = ', i, ' a = ', a, ' b = ',b);
end;
end.
прога проводит расчет для всх трехзначных чисел от 999 до 100
итого мы видим что максимальное подходящее число это 960
при необходимости прогу можно переделать чтобы она находила только максимальное число.