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

问题描述

把 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;
}
相关推荐
谷雨不太卷19 小时前
进程的状态码
java·前端·算法
散峰而望20 小时前
【算法竞赛】C/C++ 的输入输出你真的玩会了吗?
c语言·开发语言·数据结构·c++·算法·github
躺不平的理查德20 小时前
时间复杂度与空间复杂度备忘录
数据结构·算法
yaki_ya20 小时前
yaki-C语言:从概念基础到内存解析---数组(array)完全指南
java·c语言·算法
刃神太酷啦20 小时前
扒透 STL 底层!map/set 如何封装红黑树?迭代器逻辑 + 键值限制全手撕----《Hello C++ Wrold!》(23)--(C/C++)
java·c语言·javascript·数据结构·c++·算法·leetcode
挽星安21 小时前
代码随想录算法训练营第五十天|卡码网 99 岛屿数量、卡码网 100 最大岛屿的面积
算法
葫三生21 小时前
《论三生原理》系列构建文理同构的认知体系?
人工智能·科技·深度学习·算法·机器学习·transformer
多加点辣也没关系21 小时前
数据结构与算法|第六章:队列
数据结构·算法·队列
_深海凉_1 天前
LeetCode热题100-分割回文串
算法·leetcode·职场和发展