Информатика Архивный вопрос

3. Укажите набольшее и наименьшее пятизначное число x, при вводе которого алгоритм печатает сначала 3, а потом 4.
var x, y, a, b: longint;
begin
a := 0;
b := 0;
readln(x);
while x > 0 do begin
y := x mod 10;
if y >2 then a := a + 1;
if y < 8 then b := b + 1;
x := x div 10
end;
writeln(a);
writeln(b)
end.

10 комментария:
да у меня тоже в ответе пусто, что-то в программе не так, ищу
мне кажется ошибка в условии где а и b определяются
цикл крутится 5 раз обязательно, при этом скорее всего а и b набирают значения больше 3 и 4
Я проверил по программе все хорошо, но по значения a и b не очень
я без условия принт запустила- нули напечатал один раз и все
значит ошибка в логике программы
То есть получается таких x нет)
выходит а а и b ничего так и не положили
если вы с for проверяли- то вероятно переменная этого цикла не рассчитана на такой тип, без него печатает при х=10000 и ч=99999
без проверки условий а и b ...

Ответы

Гость

Добил её)

//PascalABC.NET
//Версия 3.3, сборка 1611 (06.01.2018)

var x, y, a, b: longint;
begin
var ax:=new List<integer>;
for var i:=10000 to 99999 do begin
x:=i;
while x > 0 do begin
y := x mod 10;
if y >2 then a := a + 1;
if y < 8 then b := b + 1;
x := x div 10;
end;
If (a=3) and (b=4) then begin ax.add(i); end;
a:=0; b:=0;
end;
Println('Минимальное x->',ax.min); Println('Максимальное x->',ax.max);
end.

Результат:
Минимальное x-> 10338 
Максимальное x-> 97722 

Нет комментариев

Похожие вопросы