题解 | #自守数#

自守数

https://www.nowcoder.com/practice/88ddd31618f04514ae3a689e83f3ab8e

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {

    private static int count = 0;
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = 1;
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            n = in.nextInt();
        }

        int result = result(n);
        System.out.print(result);
    }


    private static int result(int n){
        if(n <= 4){
            return 2;
        } else if(n == 5){
            return 3;
        } else if(n < 10){
            return 4;
        }
        for(int i=10;i<=n;i++){
            find(i);
        }

        return count + 4;
    }


    private static void find(int an){

        int a = an * an;
        if((a - an) % mod(an) == 0){
            count += 1;
        }
    }

    private static int mod(int n){
        if(n < 100){
            return 100;
        } else if(n < 1000){
            return 1000;
        }  else if (n < 10000){
            return 10000;
        } else {
            return 100000;
        }
    } 
}

#努力刷题下#
雪域灰灰刷题笔记 文章被收录于专栏

雪域灰灰刷题笔记

全部评论

相关推荐

不愿透露姓名的神秘牛友
04-22 18:57
点赞 评论 收藏
分享
点赞 评论 收藏
分享
learYuan:🐕看了都摇头
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务