平方十位数 第八届蓝桥杯
标题:平方十位数 由0~9这10个数字不重复、不遗漏,可以组成很多10位数字。 这其中也有很多恰好是平方数(是某个数的平方)。 比如:1026753849,就是其中最小的一个平方数。 请你找出其中最大的一个平方数是多少? 注意:你需要提交的是一个10位数字,不要填写任何多余内容。
从1026753849枚举到9876543210是不现实的,将这两个数平方后为 [ 32043 , 99380 ] ,枚举这6万次还是可以的
public class Main{ public static void main(String[] args) { for(long i=99380;i>=32043;i--){ int flag[]=new int[10]; long k=i*i; while(k!=0){ //判断数字相同 long tmp=k%10; if(flag[(int)tmp]==1){ break; }else{ flag[(int)tmp]=1; } k=k/10; } if(k==0){ System.out.println(i*i); break; } } } }
答案:9814072356