全局数组排出几种
运行下面这段程序:
#include <cstdlib>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int n_g;
bool used_g[10];
int path_g[10];
int len_g = 0;
int count_g = 0;
void dfs_g() {
if (len_g == n_g) {
count_g++;
return;
}
for (int x = 1; x <= n_g; x++) {
if (used_g[x]) continue;
used_g[x] = true;
path_g[len_g++] = x;
dfs_g();
len_g--;
used_g[x] = false;
}
}
int main() {
n_g = 4;
dfs_g();
cout << count_g << endl;
}
(本题用 g++ -std=c++17 -O0 编译。)
全部评论