输入一个整数n,求长度为n的所有排列解决方法
输入一个整数n,求长度为n的所有排列
例如n=2,排列为:
01
10
02
20
..
98
89
n =4时 排列为:
0123
0124
0125
。。。
9875
9876
------解决思路----------------------
例如n=2,排列为:
01
10
02
20
..
98
89
n =4时 排列为:
0123
0124
0125
。。。
9875
9876
------解决思路----------------------
/**************************************
*FILE :D:\c\main.cpp
*PROJECT :NULL
*AUTHOR :707wk
*CREATED :2015/9/20 19:13:52
*TEXT :NULL
*EMAIL :gtsoft_wk@foxmail.com
*CODE :https://github.com/707wk
*LOGO :
#########
############
#############
## ###########
### ###### #####
### ####### ####
### ########## ####
#### ########### ####
##### ########### #####
###### ### ######## #####
##### ### ######## ######
###### ### ########### ######
###### #### ############## ######
####### ##################### #######
####### ##############################
####### ###### ################# #######
####### ###### ###### ######### ######
####### ## ###### ###### ######
####### ###### ##### #####
###### ##### ##### ####
##### #### ##### ###
##### ;### ### #
## #### ####
***************************************/
#include <iostream>
using namespace std;
int * p;
int tmp[10]={0};
void funiction(int len,int index)
{
for(int i=0;i<10;i++)
{
if(tmp[i])continue;
tmp[i]=1;
p[index]=i;
if(len-index==1)
{
for(int j=0;j<len;j++)
printf("%d ",p[j]);
printf("\t");
}
else funiction(len,index+1);
tmp[i]=0;
}
}
int main()
{
int len;
scanf("%d",&len);
p=(int* )malloc(sizeof(int)*len);
funiction(len,0);
return 0;
}