输出1-n的全排(递归C++)
程序员文章站
2023-03-31 23:04:18
【问题描述】 输出1到n之间所有不重复的排列,即1到n的全排,要求所产生的任一数列不含有重复的数字. 【代码展示】 #includeusing namespace std;int a[100],b[100];void quanpai(int index,int n){ //递归边 ......
【问题描述】
输出1到n之间所有不重复的排列,即1到n的全排,要求所产生的任一数列不含有重复的数字.
【代码展示】
#include<iostream>
using namespace std;
int a[100],b[100];
void quanpai(int index,int n){
//递归边界
if(index==n+1){
for(int i=1;i<=n;i++){
cout << a[i];
}
cout << endl;
return;
}
//向数组添加数据(123->132)
for(int i=1;i<=n;i++){
if(b[i]==0){
a[index]=i;
b[i]=1;
quanpai(index+1,n);
b[i]=0;
}
}
}
int main(){
int n;
cin >> n;
quanpai(1,n);
return 0;
}
上一篇: 大型购机避坑指南:屏幕参数详细解读
下一篇: Python3 系列之 面向对象篇