早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求java大神,用while循环解题过程及思路,给加分!求解题思路和过程!自守数是其平方后尾数等于该数自身的自然数。例如:25*25=62576*76=5776找出1-10000之间所有的自守数并输

题目详情
求java大神,用while 循环 解题过程及思路,给加分!
求解题思路和过程!
自守数是其平方后尾数等于该数自身的自然数。例如:
   25*25=625
76*76=5776
找出1-10000之间所有的自守数并输出。
▼优质解答
答案和解析

我写的代码,你可以参考和学习下:

 /**
 * 求自守数,自守数是其平方后尾数等于该数自身的自然数。
      * 例如: 25*25=625 76*76=5776
     * 找出1-10000之间所有的自守数并输出。
 * @param num
 */
public static void getAllSelfNum(int num) {
int i=1;
while (i<=num) {
String s=i+"";
// 提高效率,仅处理尾数为0,1,5,6的数字   0*0=0,1*1=1,5*5=25,6*6=36
if (s.endsWith("0")||s.endsWith("1")||s.endsWith("5")||s.endsWith("6")) {
String squareStr=(i*i)+"";
if (squareStr.endsWith(s)) {
System.out.println("Self Number: "+i);
}
}
i++;
}
}

调用:getAllSelfNum(10000);


输出结果:

Self Number: 1

Self Number: 5

Self Number: 6

Self Number: 25

Self Number: 76

Self Number: 376

Self Number: 625

Self Number: 9376