递归实现排列型枚举

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;
}
相关推荐
killerbasd9 小时前
总结 7。10
人工智能·算法·机器学习
林间码客9 小时前
RAG系统评估指南:从入门到实践
人工智能·算法·机器学习
凌波粒9 小时前
LeetCode--47.全排列 II(回溯算法)
算法·leetcode·职场和发展
学究天人9 小时前
数学公理体系大全:Comprehensive Collection of Mathematical Axiom Systems(卷8)
线性代数·算法·机器学习·数学建模·动态规划·图论·抽象代数
ctrl_v助手9 小时前
HALCON 学习笔记1
笔记·数码相机·学习·算法·计算机视觉
ShallWeL10 小时前
【机器学习】(16)—— 数值数据
人工智能·python·算法·机器学习·数据分析
hongyucai11 小时前
详解rlinf强化学习四步曲
人工智能·python·算法·架构
变量未定义~11 小时前
ST表-龙骑士军团【算法赛】
数据结构·算法
小帽子_12311 小时前
储能 SOC/SOH 精准估算技术:储能工况下算法优化与误差修正方案
算法