3. Укажите набольшее и наименьшее пятизначное число x, при вводе которого алгоритм...

0 голосов
97 просмотров

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.


Информатика (71 баллов) | 97 просмотров
0

да у меня тоже в ответе пусто, что-то в программе не так, ищу

0

мне кажется ошибка в условии где а и b определяются

0

цикл крутится 5 раз обязательно, при этом скорее всего а и b набирают значения больше 3 и 4

0

Я проверил по программе все хорошо, но по значения a и b не очень

0

я без условия принт запустила- нули напечатал один раз и все

0

значит ошибка в логике программы

0

То есть получается таких x нет)

0

выходит а а и b ничего так и не положили

0

если вы с for проверяли- то вероятно переменная этого цикла не рассчитана на такой тип, без него печатает при х=10000 и ч=99999

0

без проверки условий а и b ...

Дан 1 ответ
0 голосов
Добил её)

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

var x, y, a, b: longint;
begin
var ax:=new List;
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 
(5.8k баллов)