Permutations: Difference between revisions

128 bytes removed ,  12 years ago
m
→‎version 2: restructured the REXX program. -- ~~~~
(→‎{{header|REXX}}: added version 2. -- ~~~~)
m (→‎version 2: restructured the REXX program. -- ~~~~)
Line 2,146:
exit
/*──────────────────────────────────────────────────────────────────────*/
tell: procedure expose @.; _=; do j=1 for arg(1); _=_ @.j;end; say end_;return
say _; return
/*──────────────────────────────────────────────────────────────────────*/
nextperm: procedure expose @.; parse arg n,i; nm=n-1
 
do k=nm by -1 for nm; kp=k+1
if @.k<@.kp then do; i=k; leave; end
end /*k*/
 
do j=i+1 while j<n
do j=i+1 while j<n; parse value @.j @.n with @.n @.j; n=n-1; end
 
n=n-1
end /*j*/
if i==0 then return 0
 
do j=i+1 while @.j<@.i; end
 
parse value @.j @.i with @.i @.j
return 1</lang>