测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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。(    )

选项(单选)

上一题 下一题