洛谷 P1706 全排列问题 C语言

题目描述

按照字典序输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。

输入格式

一个整数 nn。

输出格式

由 1∼n 组成的所有不重复的数字序列,每行一个序列。

每个数字保留 5 个场宽。

输入输出样例

输入 #1复制

复制代码
3

输出 #1复制

复制代码
    1    2    3
    1    3    2
    2    1    3
    2    3    1
    3    1    2
    3    2    1

说明/提示

1≤n≤9。

思路:

爆搜模版,注意#include <iomanip>是,wets(5)的头文件

代码如下:

复制代码
#include<iostream>
#include <iomanip>
using namespace std;
int n;
int arr[100];
bool vis[100];
void dfs(int x)
{
	if(x > n)
	{
		for(int i = 1 ; i <= n ; i++)
		cout << setw(5) << arr[i];
		cout << endl;
		return;
	}
	
	for(int i = 1 ; i <= n ; i++)
	{
		if(vis[i] == false)
		{
			vis[i] = true;
			arr[x] = i;
			dfs(x+1);
			vis[i] = false;
			arr[x] = 0;		
		}		
	}
}
int main(void)
{
	cin >> n;
	dfs(1);
	return 0;
 } 
相关推荐
CoovallyAIHub1 分钟前
破局红外小目标检测:异常感知Anomaly-Aware YOLO以“俭”驭“繁”
深度学习·算法·计算机视觉
点云SLAM26 分钟前
图论中邻接矩阵和邻接表详解
算法·图论·slam·邻接表·邻接矩阵·最大团·稠密图
啊董dong32 分钟前
课后作业-2025年11月23号作业
数据结构·c++·算法·深度优先·noi
星释37 分钟前
Rust 练习册 80:Grains与位运算
大数据·算法·rust
zzzsde1 小时前
【C++】C++11(1):右值引用和移动语义
开发语言·c++·算法
sheeta19984 小时前
LeetCode 每日一题笔记 日期:2025.11.24 题目:1018. 可被5整除的二进制前缀
笔记·算法·leetcode
gfdhy10 小时前
【c++】哈希算法深度解析:实现、核心作用与工业级应用
c语言·开发语言·c++·算法·密码学·哈希算法·哈希
百***060110 小时前
SpringMVC 请求参数接收
前端·javascript·算法
一个不知名程序员www11 小时前
算法学习入门---vector(C++)
c++·算法