直覺的寫法,沒有講求效率...
#include <stdio.h>
#define ELEMENT_NUM 9
int isrepeated(int *array)
{
int i, j;
for (i = 0; i < ELEMENT_NUM; i++)
for (j = i + 1; j < ELEMENT_NUM; j++)
if (array[i] == array[j])
return 0;
return 1;
}
void permutate(int element)
{
int i, j;
static int result[ELEMENT_NUM];
if (element == ELEMENT_NUM && isrepeated(result)) {
for (i = 0; i < ELEMENT_NUM; i++) printf("%d", result[i]);
printf("\n");
}
if (element < ELEMENT_NUM + 1)
for (j = 1; j < ELEMENT_NUM + 1; j++) {
result[element] = j;
permutate(element + 1);
}
}
void main()
{
permutate(0);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.128.220.49