算法入门经典 7.2.1(生成1 - n 的排列)

来源:互联网 发布:修复ubuntu引导 编辑:程序博客网 时间:2024/04/30 02:41
#include <stdio.h>void fun(int n,int *A,int cur){int i,j;if(cur==n)             //递归边界{for(i=0;i<n;i++)printf("%d",A[i]);printf("\n");}else for(i=1;i<=n;i++)   //尝试在A【k】中填写各种整数i{int ok=1;for(j=0;j<cur;j++)if(A[j]==i) ok=0;  //if i已经出现过不能再选if (ok){A[cur]=i;fun(n,A,cur+1);  //递归调用}}}int main(){int n;int a[100];while (scanf("%d",&n)==1){fun(n,a,0);}return 0;}

原创粉丝点击