求第n个12345排列数
数字1,2,3,4,5排列可以形成多个数字,按序的话第一个数字12345, 第二个排列数是12354,第100个排列数是51342。
现在给定数字n,求第n个由数字1,2,3,4,5构成的排列数。
输入
输入一个合法的正整数n。
输出
输出第n个由数字1,2,3,4,5构成的排列数。
样例输入 Copy
100
样例输出 Copy
51342
#include<stdio.h>
int baohan(int x)//判断x里是否是1,2,3,4,5五个数字里的数
{
int b[5]={1,2,3,4,5};
int a[5];
int i=0;
while(x>0)
{
a[i]=x%10;
i++;
x/=10;
}
int count=0;
for(int j=0;j<5;j++)
{
for(int m=0;m<5;m++)
{
if(a[j]==b[m])
{
count++;
}
}
}
if(count==5)
{
return 1;
}else{
return 0;
}
}
int meiyoucf(int x)//五个数字彼此不重复
{
int a[5];
int i=0;
while(x>0)
{
a[i]=x%10;
i++;
x/=10;
}
for(int j=0;j<4;j++)
{
for(int m=j+1;m<5;m++)
{
if(a[m]==a[j])
{
return 0;
}
}
}
return 1;
}
int main(void)
{
int n,count,i;
int f=0;
scanf("%d",&n);
for(i=12345,count=0;i<=54321,count<n;i++)
{
if(baohan(i)&&meiyoucf(i))
{
count++;
f=i;
}
}
printf("%d",f);
}
这一个代码我写了三遍,前后间隔五天以上,,,,马上就要期末考试了,放轻松,加油!!