A22470. #include <algorithm> #include <stdio> #include <string> bool flag[27]; int n; int p[27]; int ans = 0; void dfs(int k) { if (k == n + 1) { ++ ans; return; } for (int i = 1; i <= n; ++i) { if (flag[i] …
判断题
较易
知识点
题目描述
#include <algorithm>
#include <stdio>
#include <string>
bool flag[27];
int n;
int p[27];
int ans = 0;
void dfs(int k) {
if (k == n + 1) {
++ ans;
return;
}
for (int i = 1; i <= n; ++i) {
if (flag[i] && i == p[k - 1] - 1) continue;
if (flag[i] && i == p[k - 1] + 1) continue;
p[k] = i;
flag[i] = true;
dfs(k + 1);
flag[i] = false;
}
return;
}
int main() {
scanf("%d", &n);
dfs(1);
printf("%d\n", ans);
return 0;
}当输入的 n=3 的时候,程序输出的答案为 3。( )
选项(单选)
答案解析
详细答案解析为会员权益,按每日次数查看。
开通 / 升级会员
上一题
下一题