旭丘幼儿园的小班开设了一门教授数论的课程。Mocha 在研究数论的过程中,发现了一种奇妙的 数——Mocha 数。
Mocha 数是一个由几个互不相同的数字构成且不含前导零的正整数。
为了方便研究,Mocha 想知道是否存在一个包含 n 个数位的 Mocha 数,如果存在,其中最小的 Mocha 数是多少。
输入一个整数 n(1 ≤ n ≤ 20),代表询问的位数。
如果存在包含 n 个数位的 Mocha 数,输出最小的 n 位 Mocha 数,否则输出 −1。
样例
input
1
output
1
1 到 9 都是只包含 1 个数位的 Mocha 数,其中 1 是最小的 Mocha 数
思路
如果题意所说的互不相同数字是指单个数字, 而不是把13当成整体的话, 当n大于10时便无解。
10及以内直接打表即可: 1-1 2-10 3-102 4-1023 5-10234 6-102345 7-1023456 8-10234567 9-102345678 10-1023456789
可悲的是当时头昏脑涨在考虑让13也当做一个数字时的情况, 一个一个在枚举, WA了好几次。
代码
// By
#include <iostream>
using namespace std;
string s = "1023456789";
int main()
{
int n;
cin >> n;
if(n > s.length()) cout << "-1";
else{
for(int i = 0; i < n; ++i) cout << s[i];
}
return 0;
}