generowanie wszystkich liczb z cyfr od 1..9

0

Witam. potrzebuje napisać program który w miare szybko będzie liczył jakie ciągi dziewięciocyfrowe powstaną z liczb od 1...9. cyfry w liczbie nie mogą się powtarzać. zatem będzie ich 9!. mam pomysł żeby generować i za każdym razem sprawdzać czy liczba jest na liście juz ale to bardzo czasochłonne(w sensie obciażające procesor) . ma ktoś jakiś pomysł?

0
const 
  n=9;
var 
  t:array[1..n] of longint;

procedure permute(k: longint);
var i, c:longint;
begin
  if k=1 then begin
    for i:=1 to n do 
      write(t[i]);
    writeln;
  end else begin
    permute(k-1);
    for i:=1 to k-1 do begin
      c:=t[i]; t[i]:=t[k]; t[k]:=c;
      permute(k-1);
      c:=t[i]; t[i]:=t[k]; t[k]:=c
    end;
  end
end;

var i:longint;
begin
    for i:=1 to n do  
       t[i]:=i;
    permute(n);
end.

1 użytkowników online, w tym zalogowanych: 0, gości: 1