枚举这个数i,因为题目说了,刚好把0~9全部用了一边,也就是说最大不会超过(假设是},我们枚举到1000就行了,是
我们用set去重的思想,把,拆位后往set里扔,最后set的大小是10的话也就是说里面没有重复的,就是0~9,那么i就是答案:
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
set<int> S;
//void sovel(int x)
//{
// while (x)
// {
// S.insert(x%10);
// x /= 10;
// }
//}
int main()
{
for (int i = 1; i <=1000; i++)
{
int p2 = i * i;
int p3 = i * i * i;
while (p2)
{
S.insert(p2%10);
p2 /= 10;
}
while (p3)
{
S.insert(p3 % 10);
p3 /= 10;
}
if (S.size() == 10)
{
cout << i << endl;
break;
}
S.clear();
}
return 0;
}