读书人

数字全排列有关问题

发布时间: 2012-02-24 16:30:39 作者: rapoo

数字全排列问题?
输入一个数如123456如何将其完全排列?
123456
123465
123546
123564
.....
....
654321
请指教!

[解决办法]
#include <stdio.h>
int len, p[9];

int isok(int n, int j){

int i;

for(i=1;i<n;i++){
if(p[i-1]==j){
return 0;
}
}

return 1;
}
void findnum(int j){

int i;

for(i=1;i<=len;i++){
if(isok(j,i)){
p[j-1]=i;
if(j<len){
findnum(j+1);
} else {
for(i=0;i<len;i++){
printf("%d", p[i]);
}
printf("\n");
}
}
}
}
void main(){


printf("n=");
scanf("%d", &len);

findnum(1);

}

读书人网 >C++

热点推荐