降序组合,即给定两个自然数N,R,其中N>R,输出从数1到N中按降序顺序取R个自然数的所有组合。
例如:N=5,R=3时,有如下组合
543
542
541
532
531
521
432
431
421
321
dime a(20)
input "n=" to n
input "r=" to r
i=1
a(1)=n
do while .T.
if i<>r
if a(I)>r-i
a(i+1)=a(i)-1
i=i+1
else
i=i-1
a(i)=a(i)-1
endif
else
for j=1 to r
??a(j)
endfor
?
if a(r)=1
i=i-1
a(i)=a(i)-1
else
a(i)=a(i)-1
endif
endif
if a(1)=r-1
exit
endif
enddo
有点看不懂程序。有谁给讲解一下。程序注释