编程实现由1,2,3,4,5组成的五位数(数字不重复),由小到大排列,12345是第一个,问21345是第几个?第99个数是几

来源:百度知道 编辑:UC知道 时间:2024/05/26 02:06:31

结果
21345是第25个
第99个是51324

程序

#include<iostream>
#include<set>
using namespace std;
void main()
{
set<int> data;
int n=0;
for (int i=12345;i<=54321;++i)
{
int a=i;
data.clear();
while(a!=0)
{
int b=a%10;
a=a/10;
if (b<6 && b>0)
data.insert(b);
}
if (data.size()==5)
{
n++;
if (i==21345)
printf("21345是第%d个\n",n);
if (n==99)
printf("第99个是%d\n",i);
}
}
}

用五个for 循环, 在最后一循环里 做 COUNT++; 并且同时做判断是否 count==99
当组成的那个值是 21345时 , 吧count 值输出就可以了