题目描述
自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n以内的自守数的个数
接口说明
/*
功能: 求出n以内的自守数的个数
输入参数:
int n
返回值:
n以内自守数的数量。
*/
public static int CalcAutomorphicNumbers( int n)
{
/*在这里实现功能*/
return 0;
}
输入描述:
int型整数
输出描述:
n以内自守数的数量。
示例1
输入
2000
输出
8
 
程序实现:
- import java.util.Scanner;  
 
-   
 
- public class Main {  
 
-   
 
-     public static void main(String[] args) {  
 
-         Scanner scanner = new Scanner(System.in);  
 
-         while (scanner.hasNext()) {  
 
-             int num = scanner.nextInt();  
 
-             int sum = 0;  
 
-             for (int i = 0; i <= num; i++) {  
 
-                 if (i == CalcAutomorphicNumbers(i)) {  
 
-                     
 
-                     sum++;  
 
-                 }  
 
-             }  
 
-   
 
-             System.out.println(sum);  
 
-   
 
-         }  
 
-   
 
-     }  
 
-   
 
-     public static int CalcAutomorphicNumbers(int n) {  
 
-         String string = String.valueOf(n);  
 
-         int len = string.length();  
 
-         int wei = (int) Math.pow(10, len);  
 
-         int savewei = wei;  
 
-         int ceng = 1;  
 
-         int current = 0;  
 
-         int n2 = n;  
 
-         int sum = 0;  
 
-         for (int i = 0; i < len; i++) {  
 
-             current = n2 % 10;  
 
-             sum += (current * n % wei) * ceng;  
 
-             n2 = n2 / 10;  
 
-             ceng = ceng * 10;  
 
-             wei = wei / 10;  
 
-         }  
 
-         return sum % savewei;  
 
-     }  
 
-   
 
- }  
 
华为机试-自守数
原文:http://www.cnblogs.com/wwjldm/p/7158663.html