求救!希望大家来帮帮我,着急用!
应用回溯法,谢谢大家。找出n个自然数(1,2,3,。。。。,N)中r个数的组合。例如:n=5,r=3,所有组合为:
A[1] A[2] A[3]
5 4 3
5 4 2
5 4 1
5 3 2
5 3 1
5 2 1
4 3 2
4 3 1
4 2 1
3 2 1
排数时从A[1]->A[2]->A[3],后一个至少比前一个数小1,并且应该满足ri+A[ri]>r这个关系。若ri+A[ri]<=r就要回溯,该关系就是回溯的条件。为直观起见,当输出一组组合数后,若最后一位为1,也应该做一次回溯(若不回溯,便由上述回溯条件处理)。