标题:平方十位数
由0~9这10个数字不重复、不遗漏,可以组成很多10位数字。
这其中也有很多恰好是平方数(是某个数的平方)。
比如:1026753849,就是其中最小的一个平方数。
请你找出其中最大的一个平方数是多少?
注意:你需要提交的是一个10位数字,不要填写任何多余内容。
由0~9这10个数字不重复、不遗漏,可以组成很多10位数字。
这其中也有很多恰好是平方数(是某个数的平方)。
比如:1026753849,就是其中最小的一个平方数。
请你找出其中最大的一个平方数是多少?
注意:你需要提交的是一个10位数字,不要填写任何多余内容。
答案为:9814072356
思路:枚举32043~100000这些数的平方数是否包含0~9,显然要用大数字运算
代码:
public class Square_Num {
static void ifIs0_9(BigInteger init) {
String str = init.toString();
int flag = 0;
if(str.length() != 10) {
return;
}
for(int i = 0; i <= 9; i++) {
BigInteger b = new BigInteger(Integer.toString(i));
String s = b.toString();
if(str.contains(s)) {
flag++;
if(flag == 10) {
System.out.println(init);
}
}
}
}
public static void main(String[] args) {
BigInteger init;
for(int i = 32043; i <= 100000; i++) {
BigInteger num = new BigInteger(Integer.toString(i));
init = num.pow(2);
ifIs0_9(init);
}
}
}