c语言全排列递归算法 pascal语言用递归实现全排列?

pascal语言用递归实现全排列?Const max=9var m,N:长a:数组[1。。Max]long procedure work(J,K:long)//J是枚举的第J位,K是最后一个枚举值,V

pascal语言用递归实现全排列?

Const max=9var m,N:长a:数组[1。。Max]long procedure work(J,K:long)//J是枚举的第J位,K是最后一个枚举值,VAR I:long begin如果J=m1则开始I:=1到M-1 do write(a[I],”)//输出writeln(a[M])end否则I:=k1到N-M J do//第I位的范围如下,K很容易理解N-M J是可以证明的在数学上。例8 3,那么第一个最大范围是1~6,第二个最大范围是2~7,3~8,所以开始a[J]:=I work(J 1,I)//回溯end end begin readln(n,m)work(1,0)end