打印n个数的全排列(递归版)

来源:互联网 发布:无限域名的空间 编辑:程序博客网 时间:2024/05/17 02:06

代码如下:

//计算n个数的全排列#include<stdio.h>int size;int sum=0;void perm(int a[],int k){if(k==size){sum++;for(int i=0;i<size;i++)printf("%d ",a[i]);printf("\n");}else{for(int i=k;i<size;i++){int temp;temp=a[i]; a[i]=a[k]; a[k]=temp;perm(a,k+1);temp=a[i]; a[i]=a[k]; a[k]=temp;}}}int main(){int a[]={1,2,3,4,5};size=sizeof(a)/4;perm(a,0);printf("sum=%d\n",sum);return 0;}


0 0