降序组合,即给定两个自然数N,R,其中N>R,输出从数1到N中按降序顺序取R个自然数的所有组合。

yinshen8819 2018-03-12 02:46:12
例如: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
有点看不懂程序。有谁给讲解一下。程序注释
...全文
1242 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
回马枪 2018-03-13
  • 打赏
  • 举报
回复

*!*	5 选 3 的组合,得到 10 条记录,Select SQL 算法:

Create Cursor X (X N(2))
For I = 5 To 1 Step -1
    Insert Into X Values (I)
Endfor

Select c.x c, b.x b, a.x a ;
    From x a, x b, x c ;
    Where a.x < b.x And b.x < c.x
回马枪 2018-03-13
  • 打赏
  • 举报
回复
C(5,3) = 10 的组合算法

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧