递归实现排列型枚举

cpp 复制代码
#include<iostream>
using namespace std;

const int N = 10;
int state[N];
bool used[N];
int n = 0;
void dfs(int u) 
{
	if (u > n) 
	{
		for(int i=1;i<=n;i++)
			printf("%d ", state[i]);
		printf("\n");
	}
	for (int i = 1; i <= n; i++)
	{
		if (!used[i])
		{
			state[u] = i;
			used[i] = true;
			dfs(u + 1);
			
			state[u] = 0;
			used[i] = false;
		}
	}

}
int main()
{
	scanf("%d", &n);
	dfs(1);
	return 0;
}
相关推荐
jghhh0141 分钟前
LT喷泉码编解码的MATLAB实现
数据库·算法·matlab
被遗忘在角落的死小孩41 分钟前
抗量子 Winternitz One Time Signature(OTS) 算法学习
学习·算法·哈希算法
浅念-1 小时前
C++ :类和对象(4)
c语言·开发语言·c++·经验分享·笔记·学习·算法
YunchengLi1 小时前
【移动机器人运动规划】5 基于优化的轨迹规划 Part2
算法·机器人
yuuki2332331 小时前
【C++】模拟实现 AVL树
java·c++·算法
dog2502 小时前
阿基米德的有限步逼近思想求圆面积
算法
想做功的洛伦兹力12 小时前
2026/2/13日打卡
算法
仟濹2 小时前
【算法打卡day7(2026-02-12 周四)算法:BFS and BFS】 3_卡码网107_寻找存在的路线_并查集
数据结构·算法·图论·宽度优先
YuTaoShao2 小时前
【LeetCode 每日一题】3713. 最长的平衡子串 I ——(解法二)暴力枚举 + 优化
算法·leetcode·职场和发展
蜡笔小马2 小时前
20.Boost.Geometry 中常用空间算法详解:crosses、densify、difference 与离散距离度量
c++·算法·boost