问题描述
0、1、2三个数字的全排列有六种,按照字母序排列如下: 012、021、102、120、201、210 输入一个数n 求0~9十个数的全排列中的第n个(第1个为0123456789)。 输入格式 一行,包含一个整数n 输出格式 一行,包含一组10个数字的全排列 样例输入 1 样例输出 0123456789 数据规模和约定 0 < n <= 10!
思路
本题最简单的方法就是采用next_permutation 函数。
代码:
#include <algorithm>
#include <stdio.h>
using namespace std
;
int num
= 0;
int main
()
{
int n
;
scanf("%d",&n
);
int i
;
int a
[]={0,1,2,3,4,5,6,7,8,9};
int b
=10;
do
{
num
++;
if(num
== n
)
{
for(i
=0;i
<10;i
++)
printf("%d",a
[i
]);
}
}while(next_permutation(a
,a
+b
));
return 0;
}