---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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