首页 > 代码库 > 华为机试-自守数
华为机试-自守数
题目描述
自守数是指一个数的平方的尾数等于该数自身的自然数。例如: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;
- }
- }
华为机试-自守数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。