您的位置:首页 > 其它

1651: 排列顺序

2016-06-23 19:23 330 查看
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;//一定要确定返回值要求是1  因为系统会随机返回一个值 而很有可能非0
else continue;
}
}
}
int main(void)
{
scanf("%d",&n);Q_P(0);
puts(P);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: