---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.标题:平方十位数
由0~9这10个数字不重复、不遗漏,可以组成很多10位数字。
这其中也有很多恰好是平方数(是某个数的平方)。
比如:1026753849,就是其中最小的一个平方数。
请你找出其中最大的一个平方数是多少?
注意:你需要提交的是一个10位数字,不要填写任何多余内容。
---------------------
思路:一开始以为直接最大值开根号取整+1就结束,但是不能重复啊
代码:
package guosai;
public class gs2017 {
public static void main(String[] args) {
long a = 9876543210L;
long b = (long) Math.sqrt(a);
System.out.println("最大可能值:" + b);
for(long i = b; i >= 10000L; i--) {
long c = i * i;
int[] num = new int[10];
int flag = 0;
while(c!=0) {
int d = (int) (c % 10);
if(num[d] != 0) {
flag = 1;
break;
}
num[d]++;
c /= 10;
}
if(flag == 0) {
System.out.println(i * i);
break;
}
}
System.out.println("over");
}
}
/*
*
* ans = 9814072356
*
* */
49-2017年第八届蓝桥杯国赛试题及详解(Java本科B组)
原文:https://www.cnblogs.com/zhumengdexiaobai/p/10807181.html