题解 | #自守数#

自守数

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

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String a;
        try {
            a = in.readLine();
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
        int n = parse(a);
        System.out.print(count(n));
    }

    static int parse(String a) {
        int i = 0, l = a.length(), n = 0;
        char[] chrAy = new char[l];
        a.getChars(0, l, chrAy, 0);
        while (i < l) {
            if ((chrAy[i] - '0' | '9' - chrAy[i]) > 0) {
                n *= 10;
                n += chrAy[i] - '0';
            }
            i++;
        }
        return n;
    }

    static int count(int n) {
        int i = 0, j = 1, tmp = 0, selfDefend = 0;
        n++;
        while (i < n) {
            for (; j < i + 1; j *= 10) {
            }
            tmp = i * i;
            tmp -= i;
            if (tmp % j == 0)
                selfDefend++;
            i++;
        }
        return selfDefend;
    }
}

全部评论

相关推荐

存一千万就可以进大厂实习
石圪节公社发型师:有存一千万的实力还实习个嘚,直接躺平
点赞 评论 收藏
分享
白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务