看到题目首先想到用枚举,从最大到最小
思路1
1、枚举答案X【9876543210,,126753849】
2、判断x是不是恰好是0~9十个数字
3、判断是不是完全平方数
1)令Y = int(sqrt(x))
2)判断 Y * Y == X?
优化
思路2:枚举Y
已知X的取值【9876543210,,126753849】,得到Y的取值范围【100000,30000】。
1、枚举Y【100000,30000】
2、计算X=Y*Y
3、判断X是不是恰好是0~9十个数字
import java.math.BigInteger;
import java.util.HashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) {
for(int i=100000;i>30000;i--) {
//i*i的值已经超过了long的最大值,所以要用BigInteger
BigInteger b&#