/*高中同学问了我一道题,开始以为简单循环就能完成,后来发现原来是道深搜题,一开始还没想出来...
问题描述
给1到N,N个数,要你从中选取M个出来,请输出每一种的选取情况(根据序列字典序输出,
即两个序列比大小,第一位小的小,若相等第二位小的小,若相等第三位小的小……)。
样例输入
4 3
样例输出
1 2 3
1 2 4
1 3 4
2 3 4*/
<span style="font-size:18px;">#include<stdio.h> int ans[10]; void dfs(int start,int has,int n,int m) { if(has==m) { for(int i=0;i<m;i++) printf("%d ",ans[i]); printf("\n"); return; } for(int i=start+1;i+m<=n+has+1;i++) { ans[has]=i; dfs(i,has+1,n,m); } } int main() { int n,m; scanf("%d%d",&n,&m); dfs(0,0,n,m); }</span>
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-15 02:26:22