题目描述
自守数是指一个数的平方的尾数等于该数自身的自然数。例如: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