Rekurzív alprogram, segítene valaki?
Te hogy oldottad meg?
Nekem ilyen van, de nem nagyon akar működni...
program rekurziv;
var
tomb:array[0..100] of byte;
n:byte;
pert:boolean;
procedure init;
var i: byte;
begin
writeln('darabszam:');
readln(n);
for i:=0 to n do tomb[i]:=i;
end;
procedure next;
var i, j, k, t: byte;
begin
pert:= true;
i:=n - 1;
while i >= 0 do
begin
if tomb[i] < tomb[i + 1] then
begin
pert:=false;
break;
end;
dec(i);
end;
if not pert then
begin
j:=i + 1;
k:=n;
while j < k do
begin
t:=tomb[j];
tomb[j]:=tomb[k];
tomb[k]:=t;
inc(j);
dec(k);
end;
j:=n;
while tomb[j] > tomb[i] do dec(j);
inc(j);
t:=tomb[i];
tomb[i]:=tomb[j];
tomb[j]:=t;
end;
for i:=0 to n do write(tomb[i],' ');
writeln;
end;
begin
init;
pert:=false;
repeat
next;
until not pert;
end.
Kombinációkat számítja rekurzív módon, csak vlaamiért nem működik. :-( nem rendezés. :-)
Nem én írtam úgyhogy nem sértődöm meg azon amit írtál. :-) azt hiszem amíg nem nullátol számolt, addig működött, és a while ciklusnak nem 0 volt a feltétele hanem 1
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!