回 帖 发 新 帖 刷新版面

主题:求1000到9999的吸血鬼数字

class VampireDigital1{
 public static void main(String[] args){
 String[] ar_str1,ar_str2;
int sum=0;
for(int i=10;i<100;i++){
for(int j=i+1;j<100;j++){
int i_val=i*j;
if(i_val<1000||i_val>9999)
 continue; //积小于1000或大于9999排除,继续下一轮环
ar_str1=String.valueOf(i_val).split("");    10
ar_str2=(String.valueOf(i)+String.valueOf(j)).split(""); 11
java.util.Arrays.sort(ar_str1); 12
java.util.Arrays.sort(ar_str2); 13
if(java.util.Arrays.equals(ar_str1, ar_str2)){14
 //排序后比较,为真则找到一组
sum++;
System.out.println("第"+sum+"组: "+i+"*"+j+"="+i_val);
}
}
}
System.out.println("共找到"+sum+"组吸血鬼数");
}
}

问题1:两个循环处为什么没有99*99

问题2:麻烦帮忙写一下10、11、12、13、14处的注释。

回复列表 (共1个回复)

沙发


问题1. 循环中包含99*99,由于99*99 = 9801 不满足要求,没有显示。
问题2.
10 把乘积转换成字符串类型
11 把2个乘数转换成字符串类型连接起来。
12 排序。
13 排序。
14 比较是否相等。

我来回复

您尚未登录,请登录后再回复。点此登录或注册