1651: 排列顺序
时间限制: 1 Sec 内存限制: 128 MB
提交: 375 解决: 150
[提交][状态][讨论版]
题目描述
数字1,2,3,4,5排列可以形成多个数字,按序的话第一个数字12345, 第二个排列数是12354,第100个排列数是51342。
现在给定数字n,求第n个由数字1,2,3,4,5构成的排列数。
输入
输入一个合法的正整数n。
输出
输出第n个由数字1,2,3,4,5构成的排列数。
样例输入
100
样例输出
51342
提示
来源
CYH
[提交][状态][讨论版
来源: http://acm.hnust.edu.cn/JudgeOnline/problem.php?id=1651
#include <cstdio>
char P[6];
int Count=0,n;
int Q_P(int Set)
{
if(Set==5)
{
if(++Count==n) return 1;
else return 0;
}
else
{
for(int i=1;i<=5;i++)
{
int flag=0;
for(int j=0;j<Set;j++)
if(P[j]==i+'0') {flag=1;break;}
if(flag) continue;
P[Set]='0'+i;
if(Q_P(Set+1)==1) return 1;
else continue;
}
}
}
int main(void)
{
scanf("%d",&n);Q_P(0);
puts(P);
}