【算法入門競賽經典】【7.2枚舉排列】
阿新 • • 發佈:2017-08-25
n) %d color class std logs -1 邊界 枚舉
7.2.1 生成1~n的排列
#include<stdio.h> int num[20],n; void Print(int n,int *a,int cur) { int i,j,flag; if(cur == n+1)//遞歸邊界 { for( i = 1; i < cur; i ++) printf("%d ",a[i]); printf("\n"); } else { for( i = 1; i <= n; i ++) { flag= 1; for( j = 1; j < cur; j ++) if(a[j] == i)//如果i已經在a[1..cur-1]出現過,則舍棄 flag = 0; if(flag) { a[j] = i; Print(n,a,cur+1);//遞歸調用 } } } } int main() { scanf("%d",&n); Print(n,num,1); return 0; }
【算法入門競賽經典】【7.2枚舉排列】