递归实现排列型枚举题目例题

问题描述

把 1∼n1∼n 的 nn 个正整数排成一行后随机打乱顺序,按字典序输出所有不同的方案。

输入格式

输入一行,包含一个正整数 nn。(1≤n≤8)(1≤n≤8)

输出格式

输出 n!n! 行,每一行为一种方案。字典序较小的先输出。

cpp 复制代码
#include <stdio.h>
#include <stdbool.h> 

int n;
int path[15];
bool st[15];

void dfs(int u) 
{
    if (u > n) 
    {
        for (int i = 1; i <= n; i++) 
        {
            printf("%d ", path[i]);
        }
        printf("\n");
        return; 
    }

    for (int i = 1; i <= n; i++) 
    {
        if (st[i] == false) 
        {
            path[u] = i;    
            st[i] = true;   

            dfs(u + 1);

            st[i] = false; 
        }
    }
}

int main() 
{
    if (scanf("%d", &n) != 1) return 0;

    dfs(1);

    return 0;
}
相关推荐
战族狼魂5 小时前
GPT-5.6与Grok 4.5重磅发布
人工智能·算法·大模型·大语言模型
白日焰火16 小时前
基于 OpenSpec 实现规范驱动开发
算法·交互
imuliuliang6 小时前
关于图搜索算法的性能建模与可预测性研究7
算法
ForDreamMusk7 小时前
批量归一化
人工智能·算法·机器学习
Ivanqhz8 小时前
刚体的自由度
人工智能·算法
KaMeidebaby8 小时前
卡梅德生物技术快报|抗体合成:多肽抗体合成工程化方案:Nsp2 保守肽多抗制备与多维度验证
前端·网络·数据库·人工智能·算法
Yang_jie_039 小时前
笔记:数据结构(栈是否使用底指针以及头指针的初始化值)
数据结构·笔记·算法
2301_800895109 小时前
信息安全数学基础复习
算法
爱折腾的小黑牛9 小时前
简记往来批量录入功能的实现:从文本到结构化数据
前端·算法
Starmoon_dhw9 小时前
题解:P17078 夏日甜点
c++·学习·算法·图论