Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
60
Task/Permutations/Action-/permutations.action
Normal file
60
Task/Permutations/Action-/permutations.action
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
PROC PrintArray(BYTE ARRAY a BYTE len)
|
||||
BYTE i
|
||||
|
||||
FOR i=0 TO len-1
|
||||
DO
|
||||
PrintB(a(i))
|
||||
OD
|
||||
Print(" ")
|
||||
RETURN
|
||||
|
||||
BYTE FUNC NextPermutation(BYTE ARRAY a BYTE len)
|
||||
BYTE i,j,k,tmp
|
||||
|
||||
i=len-1
|
||||
WHILE i>0 AND a(i-1)>a(i)
|
||||
DO
|
||||
i==-1
|
||||
OD
|
||||
|
||||
j=i
|
||||
k=len-1
|
||||
WHILE j<k
|
||||
DO
|
||||
tmp=a(j) a(j)=a(k) a(k)=tmp
|
||||
j==+1 k==-1
|
||||
OD
|
||||
|
||||
IF i=0 THEN
|
||||
RETURN (0)
|
||||
FI
|
||||
|
||||
j=i
|
||||
WHILE a(j)<a(i-1)
|
||||
DO
|
||||
j==+1
|
||||
OD
|
||||
tmp=a(i-1) a(i-1)=a(j) a(j)=tmp
|
||||
RETURN (1)
|
||||
|
||||
PROC Main()
|
||||
DEFINE len="5"
|
||||
BYTE ARRAY a(len)
|
||||
BYTE RMARGIN=$53,oldRMARGIN
|
||||
BYTE i
|
||||
|
||||
oldRMARGIN=RMARGIN
|
||||
RMARGIN=37 ;change right margin on the screen
|
||||
|
||||
FOR i=0 TO len-1
|
||||
DO
|
||||
a(i)=i
|
||||
OD
|
||||
|
||||
DO
|
||||
PrintArray(a,len)
|
||||
UNTIL NextPermutation(a,len)=0
|
||||
OD
|
||||
|
||||
RMARGIN=oldRMARGIN ;restore right margin on the screen
|
||||
RETURN
|
||||
Loading…
Add table
Add a link
Reference in a new issue