回覆列表
  • 1 # 使用者58965548962

    #include "stdio.h"

    int ans = 0, n;

    bool visit[30];

    void dfs(int cur) {

    if (cur == n) {

    ++ans;

    return ;

    }

    for (int i = 0; i < n; ++i) {

    if (i == cur || visit[i])

    continue;

    visit[i] = true;

    dfs(cur + 1);

    visit[i] = false;

    }

    }

    main()

    {

    scanf("%d", &n);

    for (int i = 0; i < n; ++i)

    visit[i] = false;

    for (int i = 1; i < n; ++i) {

    visit[i] = true;

    dfs(1);

    visit[i] = false;

    }

    printf("%d\n", ans);

    }

    n不能太大,不然會執行很久的。

  • 中秋節和大豐收的關聯?
  • 婚姻時差38集大結局意外懷孕?