//NYOJ 32 组合数,另一个方向,锻炼这个思维
#include<cstdio>
#include<cstring>
int n,r;
int num[11];
using namespace std;
//是从1~0的。0是退出点
void DFS(int x,int y){
if(y==0){
for(int i=r;i>=1;i--){
printf("%d%c",num[i],i==1?'\n':' ');
}
}
else{
for(int i=x;i>=y;i--){//以第一个数为例,最大的第一位可以取到最小是后面数位+1
num[y]=i;
DFS(i-1,y-1);
}
}
}
int main(){
while(~scanf("%d%d",&n,&r)){
DFS(n,r); //剩下的可选数,剩下的位置
}
return 0;
}
NYOJ 32 组合数 另一个方向的深搜
最新推荐文章于 2018-07-18 21:18:34 发布