【华为OJ】【060-自守数】

【华为OJ】【算法总篇章】


【华为OJ】【060-自守数】

【工程下载】


题目描述

自守数是指一个数的平方的尾数等于该数自身的自然数。例如:252 = 625,762 = 5776,93762 = 87909376。
请求出n以内的自守数的个数

接口说明
     /**
      * 功能: 求出n以内的自守数的个数
      *
      * 输入参数:int n
      * 返回值:n以内自守数的数量。
      */
     public static int calcAutomorphicNumbers(int n) {
         /*在这里实现功能*/
         return 0;
     }

输入描述

int型整数

输出描述

n以内自守数的数量。

输入例子

2000

输出例子

8

算法实现

import java.util.Scanner;

/**
 * Author: 王俊超
 * Date: 2015-12-25 16:51
 * All Rights Reserved !!!
 */
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
//        Scanner scanner = new Scanner(Main.class.getClassLoader().getResourceAsStream("data.txt"));
            while (scanner.hasNext()) {
            int n = scanner.nextInt();
            System.out.println(calcAutomorphicNumbers(n));
        }

        scanner.close();
    }

    private static int calcAutomorphicNumbers(int n) {

        int result = 0;

        for (int i = 0; i <= n; i++) {
            if (isAutomorphicNumber(i)) {
                result++;
            }
        }

        return result;
    }

    private static boolean isAutomorphicNumber(int n) {

        int s = n * n;

        while (n != 0) {
            if (s % 10 == n % 10) {
                s /= 10;
                n /= 10;
            } else {
                return false;
            }
        }

        return true;
    }
}
时间: 2024-12-20 00:39:31

【华为OJ】【060-自守数】的相关文章

【华为OJ】【074-素数伴侣】

[华为OJ][算法总篇章] [华为OJ][074-素数伴侣] [工程下载] 题目描述 若两个正整数的和为素数,则这两个正整数称之为"素数伴侣",如2和5.6和13,它们能应用于通信加密. 现在密码学会请你设计一个程序,从已有的N(N为偶数)个正整数中挑选出若干对组成"素数伴侣",挑选方案多 种多样,例如有4个正整数:2,5,6,13,如果将5和6分为一组中只能得到一组"素数伴侣",而将2和5.6和13 编组将得到两组"素数伴侣"

【华为OJ】【030-整数与IP地址间的转换】

[华为OJ][算法总篇章] [华为OJ][030-整数与IP地址间的转换] [工程下载] 题目描述 原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数. 举例:一个ip地址为10.0.3.193 每段数字 相对应的二进制数 10 00001010 0 00000000 3 00000011 193 11000001 组合起来即为:00001010 00000000 00000011 11000001,转换为10进制数就是:1

【华为OJ】【048-参数解析】

[华为OJ][算法总篇章] [华为OJ][048-参数解析] [工程下载] 题目描述 在命令行输入如下命令: xcopy /s c:\ d:\, 各个参数如下: 参数1:命令字xcopy 参数2:字符串/s 参数3:字符串c:参数4: 字符串d:请编写一个参数解析程序,实现将命令行各个参数解析出来. 解析规则: 1.参数分隔符为空格 2.对于用""包含起来的参数,如果中间有空格,不能解析为多个参数. 比如在命令行输入xcopy /s "C:\program files&quo

华为机试-自守数

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

【华为OJ】【084-求最大连续bit数】

[华为OJ][算法总篇章] [华为OJ][084-求最大连续bit数] [工程下载] 题目描述 功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1 输入: 一个byte型的数字 输出: 无 返回: 对应的二进制数字中1的最大连续数 输入描述 输入一个byte数字 输出描述 输出转成二进制之后连续1的个数 输入例子 3 输出例子 2 算法实现 import java.util.Scanner; /** * Author: 王俊超 * Dat

华为初级——自守数

描述:自守数是指一个数的平方的尾数等于该数自身的自然数.例如:25^2=625,76^2=5776,9376^2=87909376.请求出n以内的自守数的个数 接口说明 原型:unsigned int CalAutomorphicNumbers(unsigned int n); 输入参数:unsigned int n 返回值:n以内自守数的数量 知识点: 题目来源:内部整理 练习阶段:初级 运行时间限制:10sec 内存限制:128MByte 输入:输入一个整数 输出:输出一个整数 样例输入:2

【华为OJ】【094-多线程】

[华为OJ][算法总篇章] [华为OJ][094-多线程] [工程下载] 题目描述 问题描述:有4个线程和1个公共的字符数组.线程1的功能就是向数组输出A,线程2的功能就是向字符输出B, 线程3的功能就是向数组输出C,线程4的功能就是向数组输出D.要求按顺序向数组赋值ABCDABCDABCD, ABCD的个数由线程函数1的参数指定. 输入描述: 输入一个int整数 输出描述: 输出多个ABCD 输入例子: 10 输出例子: ABCDABCDABCDABCDABCDABCDABCDABCDABCD

【华为OJ】【089-DNA序列】

[华为OJ][算法总篇章] [华为OJ][089-DNA序列] [工程下载] 题目描述 一个DNA序列由A/C/G/T四个字母的排列组合组成.G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次 数除以总的字母数目(也就是序列长度).在基因工程中,这个比例非常重要.因为高的GC-Ratio可能是基因的起始点. 给定一个很长的DNA序列,以及要求的最小子序列长度,研究人员经常会需要在其中找出GC-Ratio最高的子序列. 输入描述 输入一个string型基因序列,和int型子串

【华为OJ】【077-迷宫问题】

[华为OJ][算法总篇章] [华为OJ][077-迷宫问题] [工程下载] 题目描述 定义一个二维数组N*M(其中2<=N<=10;2<=M<=10),如5 × 5数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,}; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的