题目
题解
实现题。
比较简单。
因为一个数的生成元一定比这个数小,所以如果我们1到n这些数字生成出来的数一定包含小于n的非寂寞数字。
我们遍历小于n的全部数,将它们生成的数全部标记为1,那么从0到n剩下没有被标记的就说明没有数能生成它们,输出即可。
代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5;
int vis[N], n;
int main()
{
cin>>n;
for(int i = 0;i <= n;i ++) {
int x = i, res = i;
while(x) {
res += x%10;
x /= 10;
}
vis[res] = 1;
}
for(int i = 0;i < n;i ++) if(!vis[i]) cout << i << endl;
return 0;
}