打印N个数的全排列

来源:互联网 发布:iphone移动数据怎么关 编辑:程序博客网 时间:2024/04/30 02:07
#include <stdio.h>#include <stdlib.h>void pailie(int *a, int n){static int m = -1;int i, j;m++;if (m == n) //如果是最后一个数则输出该排列{for (i = 0; i < n; i++)printf("%d ", a[i]);printf("\n");return;}for (i = 1; i <= n; i++){for (j = 0; j < m; j++){if (a[j] == i) break;}if (j < m) continue; //如果与前面的数字重复则判断下一个a[m] = i;pailie(a, n);m--; //不要忘记将标记减1}}void main(){int n;int *a;printf("请输入n:");scanf("%d", &n);printf("\n排列结果如下:\n");a = new int[n];pailie(a, n);delete[] a;}

0 0
原创粉丝点击