用Java写的,但是我的结果和别人的不一样
import java.math.BigInteger;
import java.util.TreeSet;
public class 排他平方数 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=100000;i<999999;i++){
if(!fun(i)){
continue;
}
BigInteger s = BigInteger.valueOf(i).multiply(BigInteger.valueOf(i));
if(fun2(s,i)){
System.out.println(i);
}
}
}
public static boolean fun(int i){//判断是否有重复的数字 没有返回true,否则返回false
boolean flag = true;
TreeSet<Integer> set = new TreeSet<Integer>();
String ss = i+"";
while(i!=0){
int s = i%10;
set.add(s);
i=i/10;
}
if(set.size()<ss.length()){
flag = false;
}
return flag;
}
public static boolean fun2(BigInteger d, int i){ //判断d是否包含i里面的数字 如果包含返回false 没有包含则返回true
boolean flag = true;
String s = d+"";
String ss = i+"";
for(int j=0;j<ss.length();j++){
if(s.contains(ss.charAt(j)+"")){
flag = false;
}
}
return flag;
}
}
我计算出的答案是:203879 639172