Вопрос, который вызвал трудности
Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность (например, 1234, 5789).
Ответ экспертов Учись.Ru
Чтобы дать полноценный ответ, был привлечён специалист, который хорошо разбирается в теме.
После обсуждения с другими специалистами сервиса мы пришли к выводу, что правильный ответ на ваш вопрос будет звучать следующим образом:
var n, i : Byte; d : array [1..9] of Byte;
procedure WriteD;
begin
for var i := 1 to n do Write(d[i]); Write(#32);
end;
procedure NextD(r : Byte);
begin
if r = 0 then Halt;
Inc(d[r]);
if d[r] > 9 - n + r then
begin
NextD(r - 1);
d[r] := d[r-1]+1;
end;
end;
begin
ReadLn(n);
if (n < 1) or (n > 9) then Exit;
for i := 1 to n do d[i] := i; WriteD;
repeat NextD(n); WriteD until False;
end.
procedure WriteD;
begin
for var i := 1 to n do Write(d[i]); Write(#32);
end;
procedure NextD(r : Byte);
begin
if r = 0 then Halt;
Inc(d[r]);
if d[r] > 9 - n + r then
begin
NextD(r - 1);
d[r] := d[r-1]+1;
end;
end;
begin
ReadLn(n);
if (n < 1) or (n > 9) then Exit;
for i := 1 to n do d[i] := i; WriteD;
repeat NextD(n); WriteD until False;
end.