2015年蓝桥杯A组省赛填空题 1.奇妙的数字 知识点: set 一次过

85 阅读1分钟

1.奇妙的数字 - 蓝桥云课 (lanqiao.cn)

枚举这个数i,因为题目说了i2i^{2}i3i^{3}刚好把0~9全部用了一边,也就是说i3i^{3}最大不会超过10710^{7}(假设i2i^{2}10310^{3}},我们枚举到1000就行了,100031000^{3}10910^{9}

我们用set去重的思想,把i2i^{2}i3i^{3}拆位后往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; 
}

image.png

image.png