全排列(回溯)
1 #include<iostream> 2 #include<cmath> 3 #include <algorithm> 4 using namespace std; 5 int n,m; 6 int a[10]; 7 void Perm(int list[] , int k ,int m) 8 { 9 //list 数组存放排列的数,K表示层 代表第几个数,m表示数组的长度 10 if(k==m) 11 { 12 //K==m 表示到达最后一个数,不能再交换,最终的排列的数需要输出; 13 for(int i=0 ;i<=m ;i++) 14 cout<<list[i]; 15 cout<<endl; 16 } 17 else{ 18 for(int i=k;i<=m;i++) 19 { 20 swap(list[i],list[k]); 21 Perm(list,k+1,m); 22 swap(list[i] , list[k]); 23 } 24 } 25 26 } 27 int main() 28 { 29 cin>>n; 30 for(int i=0;i<n;i++) 31 a[i]=i+1; 32 m=n-1; 33 Perm(a,0,m); 34 return 0; 35 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现