看板 C_and_CPP 關於我們 聯絡資訊
直覺的寫法,沒有講求效率... #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