#include<bits/stdc++.h>
using namespace std;
int data[]={1,2,3,4,5,6,8,9,10,32};
int num;//记录全排列的个数
void swap(int a,int b){
int t=a;a=b;b=t;
}
int perm(int begin,int end){
int i;
if(begin==end)num++;//递归结束,产生一个全排列
else {
for(i=begin;i<=end;i++){
swap(data[begin],data[i]);//把当前第一个数与后面的所有数交换位置
perm(begin+1,end);
swap(data[begin],data[i]);//恢复,用于下一次交换
}
}
}
int main(){
perm(0,3);//求4个数的全排列
cout<<num<<endl;
return 0;
}
递归打印全排列
最新推荐文章于 2023-01-14 20:14:59 发布