学习C++从娃娃抓起!记录下在学而思小猴编程学习过程中的题目,记录每一个瞬间。侵权即删,谢谢支持!
附上汇总贴:小猴编程C++ | 汇总-CSDN博客
【题目描述】
如果一个正整数的十进制表示的每一位数码都不同,则称它为独特的数。
小猴想要知道按照从小到大的顺序中,第n个独特的数是哪一个整数(0不算独特的数),请你帮助小猴编写程序完成这个问题
【输入】
一行,包含一个整数n
【输出】
一行,包含一个整数,表示结果。
【输入样例】
1
【输出样例】
1
【代码详解】
#include <bits/stdc++.h>
using namespace std;
bool chk(int x)
{
bool flag[10] = {};
while (x>0) { // 通过数位拆分来判断,如果某个数位曾出现过,返回false
if (flag[x%10]) return false;
flag[x%10] = true;
x /= 10;
}
return true; // 都没出现过,返回true
}
int main()
{
int n;
cin >> n;
int num=0;
while (n>0) { // 依次枚举num
num++;
if (chk(num)) { // 只要num满足独特的数的要求
n--; // n自减1
}
}
cout << num << endl; // 输出结果
return 0;
}
【运行结果】
1
1