快一个月没写代码了,暑假的时候写了两篇,都没什么含量,到学校来了在忙着迎新还有准备数学竞赛,一直拖到现在才写了大二的第一篇代码,虽然还是没什么含量。就当做是开学来的热身吧^.^
生成1~n的排列
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
void print_permutation(int n,int *A,int cur){
if(cur==n){
for(int i=0;i<n;++i){
printf("%d",A[i]);
}
printf("\n");
}
else for(int i=1;i<=n;++i){
bool ok=1;
for(int j=0;j<=cur;++j){
if(A[j]==i)ok=0;
}
if(ok){
A[cur]=i;
print_permutation(n,A,cur+1);
}
}
}
int main(){
int n;
cin>>n;
int *A=(int *)malloc(n*sizeof(int));
print_permutation(n,A,0);
return 0;
}