十位平方数
由0~9这10个数字不重复、不遗漏,可以组成很多10位数字。这其中也有很多恰好是平方数。
比如:1026753849,就是其中一个最小的平方数。
请你找出其中最大的一个平方数是多少?
思路1
- 枚举答案X [9876853210,1026753849](从最大的数枚举到最小的数)
- 判断是不是恰好0-9十个数字
- 判断是不是完全平方数
1) 令Y = int(sqrt(x))
2) 判断Y * Y == X
思路2(优化)
- 枚举Y[100000,30000]
- 计算X = Y * Y
- 判断X是不是恰好是0-9十个数字
//判断是不是包含0-9
bool contains0_9(int x)
{
if(x == 0