#include <cstdio>//新的C++标准中,生成新头文件的方法仅仅是将现有C++头文件名中的.h去掉。前面加上c #include <cstring> #include <iostream>//头文件,给予使用部分功能的权限iostream的意思是输入输出流 #include <algorithm>//算法 using namespace std;//直接使用cout等标识符,否则不能用 const int N = 16; int n; int st[N]; // 状态,记录每个位置当前的状态:0表示还没考虑,1表示选它,2表示不选它 void dfs(int u) { if (u >n) { for (int i = 1; i <= n; i ++ ) if (st[i] == 1) printf("%d ", i); printf("\n"); return; } st[u] = 2; dfs( + 1); // 第一个分支:不选 st[u] = 0; // 恢复现场 st[u] = 1; dfs(u + 1); // 第二个分支:选 st[u] = 0; } int main() { cin >> n; dfs(1); return 0; }
递归指数类型
最新推荐文章于 2024-06-15 16:46:40 发布