[PTA]7-2 输出全排列
请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。
输入格式:
输入给出正整数n(<10)。
输出格式:
输入样例:
3
输出样例:
123
132
213
231
312
321
代码
#include <stdio.h>
#define YES 1
#define NO 0
int order[10],is_mark[10],n;
void recursion(int k)
{
int i;
if (k>n){
for (i=1;i<n;++i)printf("%d",order[i]);
printf ("%d\n",order[n]);
return ;
}
else {
for (i=1;i<=n;++i){
if (!is_mark[i]){
order[k]=i;is_mark[i]=YES;
recursion(k+1);
order[k]=0;is_mark[i]=NO;
}
}
}
}
int main ()
{
scanf ("%d",&n);
recursion(1);
return 0;
}
标签:输出,排列,NO,int,recursion,PTA,mark,order
From: https://blog.csdn.net/2201_75443644/article/details/142388411