26 lines
797 B
Plaintext
26 lines
797 B
Plaintext
code ChOut=8, CrLf=9;
|
|
def N=4; \number of objects (letters)
|
|
char S0, S1(N);
|
|
|
|
proc Permute(D); \Display all permutations of letters in S0
|
|
int D; \depth of recursion
|
|
int I, J;
|
|
[if D=N then
|
|
[for I:= 0 to N-1 do ChOut(0, S1(I));
|
|
CrLf(0);
|
|
return;
|
|
];
|
|
for I:= 0 to N-1 do
|
|
[for J:= 0 to D-1 do \check if object (letter) already used
|
|
if S1(J) = S0(I) then J:=100;
|
|
if J<100 then
|
|
[S1(D):= S0(I); \object (letter) not used so append it
|
|
Permute(D+1); \recurse next level deeper
|
|
];
|
|
];
|
|
];
|
|
|
|
[S0:= "rose "; \N different objects (letters)
|
|
Permute(0); \(space char avoids MSb termination)
|
|
]
|