7-19 输出全排列 (20 分)
请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。
输入格式:
输入给出正整数n(<10)。
输入样例:
3
输出样例:
123
132
213
231
312
321
#include <stdio.h> int a[10],b[10],n; void dfs(int step){ if (step==n+1){ for (int i=1;i<=n;i++) printf("%d",a[i]); printf("\n"); return; } for (int i=1;i<=n;i++){ if (b[i]==0){ a[step]=i; b[i]=1; dfs(step+1); b[i]=0; } } return; } int main(){ scanf("%d",&n); dfs(1); return 0; }
来源:51CTO
作者:王睿丶
链接:https://blog.csdn.net/qq_27494201/article/details/101469173