华为机试-自守数
题目描述
自守数是指一个数的平方的尾数等于该数自身的自然数。例如: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;
- /**
- * 题目描述 自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 =
- * 87909376。请求出n以内的自守数的个数
- *
- * 接口说明
- *
- * /* 功能: 求出n以内的自守数的个数
- *
- * 输入参数: int n 返回值: n以内自守数的数量。
- *
- * 输入描述: int型整数 输出描述: n以内自守数的数量。 示例1 输入
- *
- * 2000 输出
- *
- * 8
- */
- 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)) {
- // System.out.println(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;
- }
- }
posted on 2017-07-13 09:02 WenjieWangFlyToWorld 阅读(119) 评论(0) 编辑 收藏 举报