Ниже записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наименьшее пятизначное число x, при вводе которого алгоритм печатает сначала 5, а потом 3.
Паскаль
var x, y, a, b: longint;
begin
a := 0;
b := 0;
readln(x);
while x > 0 do begin
y := x mod 10;
if y > 3 then a := a + 1;
if y < 8 then b := b + 1;
x := x div 10
end;
writeln(a);
writeln(b)
end.
СИ
int a, b, x, y;
scanf(″%d″, &x);
a = 0; b = 0;
while (x > 0)
{
y = x % 10;
if (y>3) a=a+1;
if (y<8) b=b+1;
x=x/10;
}
printf(″%d\n%d″, a, b);
44488
Объяснение:
Нужно найти такое минимальное 5значное число у которого 5 цифр больше 3 (if y > 3 then a := a + 1;) и три цифры меньше 8 (if y < 8 then b := b + 1;). Минимальные цифры больше трех 44444, но надо только три меньше 8. Восьмерки добавим в конец. Получается 44488.