![]() |
|
|||||||
| 論壇說明 |
|
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
|
主題工具 | 顯示模式 |
|
|
#3 (permalink) |
|
註冊會員
![]() |
/*
* ------------------------------- * 排列組合的產生(字典順序) * * ------------------------------- */ #include <stdio.h> #define N 4 int p[N+1]; void perm(int); void main(void) { int i; for (i=1;i<=N;i++) /* 初始設定 */ p[i]=i; perm(1); } void perm(int i) { int j,k,t; if (i<N){ for (j=i;j<=N;j++){ t=p[j]; /* p[i]∼p[j]的向右移動 */ for (k=j;k>i;k--) p[k]=p[k-1]; p[i]=t; perm(i+1); /* 遞迴呼叫 */ for (k=i;k<j;k++) /* 將陣列排列還原成遞迴呼叫前的狀況 */ p[k]=p[k+1]; p[j]=t; } } else { for (j=1;j<=N;j++) /* 顯示排列組合 */ printf("%d ",p[j]); printf("\n"); } } |
|
|
送花文章: 623,
|