Zahlenfolge

Hallo! ich muss folgendes von einem programm machen lassen:

von vorgegebenen zahlen alle kombinationen ausgeben lassen.
zum beispiel (ist wohl am einfachsten zu verstehen)

1:
1
2:
12
3:
123
132
4:
1234
1243
1324
1342
1423
1432
5:
12345
12354
usw…

die anzahl der zahlen kann man der fakultät errechen ( 4! = 6 ), außer bei den ersten zahlen (aber nicht so wichtig)

leider habe ich keine gute idee dies zu schaffen!

danke

4! = 6

das halt’ ich aber für’n Gerücht

Warum laesst Du die 1 immer fest ? Deine Rechnung ware also
eher 3!=3*2*1=6, da du nur die letzten drei Stellen veränderst.
Ein Programm um alle Permutationen in lexikographischer Reihenfolge auszugeben, findet sich im Informatik-Duden.

MFG
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo! ich muss folgendes von einem programm machen lassen:

von vorgegebenen zahlen alle kombinationen ausgeben lassen.
zum beispiel (ist wohl am einfachsten zu verstehen)

1:
1
2:
12
3:
123
132
4:
1234
1243
1324
1342
1423
1432
5:
12345
12354
usw…

Lieber David!

Das folgende Turbopascal-Programm erzeugt alle Permutationen von N Zahlen:

program Alle_Permutationen;
uses crt;
var n:integer;
el:array[1…255] of integer;

procedure tausch(var x,y:integer);
var z:integer;
BEGIN
z:=x;x:=y;y:=z;
end;

procedure perm(k:integer);
var i: integer;
begin
if k=1 then for i:=1 to n do write(el[i])
else
begin
perm(k-1);
for i:=1 to k-1 do
BEGIN
tausch(el[i],el[k]);
perm(k-1);
tausch(el[i],el[k]);
END;
END;
END;

BEGIN
readln(n);
for k:=1 to n do el[k]:=k;
perm(n);
END.