void permutation(char s[], char u[], char o[], int n, int m, int p) { int i; if ( p == m ) /*达到所选则的数目*/ { for ( i = 0; i < m; i++ ) PRintf("%c",o[i]); printf("/n"); } else { for ( i = 0; i < n; i++ ) { if ( u[i]!=m ) /*如当前元素为达到使用次数即m次*/ { u[i] += 1; o[p] = s[i]; permutation(s,u,o,n,m,p+1); u[i] -= 1; } } } }int main(){ char s[] = "ABCDE";/*原集合数据*/ char o[5]; /*用于输出的*/ char u[5] = {0}; /*用来标记当前元素所使用的次数*/ permutation(s,u,o,4,3,0);/*以4取3的排列为例*/ system("PAUSE"); return 0;}
新闻热点
疑难解答