P1157 组合的输出 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路:
以深度优先搜索为方向
123 124 125 134 ....一直搜索到尽头才会回退
代码:
#include<iostream>
#include<iomanip>
using namespace std;
int n, r,a[50];
void dfs(int k)//需取r个
{
int i;
if (k > r) {
for (i = 1; i <= r; i++)
{
cout << setw(3) << a[i];
}
cout << endl;
return;
}
for (i = a[k-1]+1 ; i <= n; i++)
{
a[k] = i;
dfs(k+1);
}
}
int main()
{
cin >> n >> r;
dfs(1);
return 0;
}
总结:理解一下dfs