首页 > 试题广场 >

老子的全排列呢

[编程题]老子的全排列呢
  • 热度指数:217 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
老李见和尚赢了自己的酒,但是自己还舍不得,所以就耍起了赖皮,对和尚说,光武不行,再来点文的,你给我说出来1-8的全排序,我就让你喝,这次绝不耍你,你能帮帮和尚么?

输入描述:


输出描述:
1~8的全排列,按照全排列的顺序输出,每行结尾无空格。
示例1

输入

No_Input

输出

Full arrangement of 1~8

备注:
1~3的全排列  :
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
#include <iostream>
#include <vector>
#include <string>
using namespace std;
constexpr int NUM = 8;

void permAll(const string& digits, vector<bool>& used, int depth, vector<char>& order) {
    if (depth == NUM) {
        for (const auto& c : order) {
            cout << c << ' ';
        }
        cout << endl;
        return;
    }
    for (int i = 0; i < NUM; ++i) {
        if (!used[i]) {
            used[i] = true;
            order[depth] = digits[i];
            permAll(digits, used, depth + 1, order);
            used[i] = false;
        }
    }
}

int main() {
    string digits = "12345678";
    vector<bool> used(NUM);
    vector<char> order(NUM);
    permAll(digits, used, 0, order);
}

发表于 2026-04-18 20:53:35 回复(0)

问题信息

上传者:牛客303862号
难度:
1条回答 161浏览

热门推荐

通过挑战的用户

查看代码
老子的全排列呢