自守数

题目: 找出1-1000中的自守数。
自守数说明: 一个数的平方的尾数等于该数时,该数字即为自守数。比如:0,1,5,6,25,76

java代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package automorphicNumber;
//自守数

import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction;

public class automorphicNumber {

public static void main(String[] args) {
for(int i=0;i<10000;i++) {
if (isautomorphicNumber(i)) {
System.out.println(i+" is a automorphicNumber");
}
}
//System.out.println(isautomorphicNumber(376));
}
//判断一个数是不是自守数
public static boolean isautomorphicNumber(int i) {
int a = i*i;
int b = a%10;
int c = b;
int count = 1;
do {
count=count*10;
if (c==i) {
return true;
}
a = a/10;
b = a%10;
c = c+b*count;
} while (a>=10);
return false;
}
}

  • 1、这题,指定了一个数的范围为1-1000,对每一个进行判断,找出其中的自守数。
  • 2、寻找自守数的方法里首先需要指定该数的平方a.此时,从a的个位数开始判断,对个位数乘以1后与原数进行比较,若相同就返回真,不同则继续取十位数字乘以10与个位数想加后再进行比较,若相同就返回真,不同则继续循环取百位。
  • 3、主函数中,对每一个返回true类型的数进行输出,该数字即为自守数。