华为OD机试 - 完全数计算(Java 2023 B卷 100分)

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、Java算法源码
    • 五、效果展示
    • 六、纵览全局

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

一、题目描述

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。

它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。

输入n,请输出n以内(含n)完全数的个数。

二、输入描述

输入一个数字n。

三、输出描述

输出不超过n的完全数的个数。

四、Java算法源码

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    while (sc.hasNextInt()) {
        int n = sc.nextInt();
        int count = 0;
        for (int i = 1; i <= n; i++) {
            if (getPerfectNum(i)) {
                count++;
            }
        }
        System.out.println(count);
    }
}

private static boolean getPerfectNum(int i) {
    ArrayList<Integer> list = new ArrayList<>();
    for (int j = 1; j < i; j++) {
        if (i % j == 0) {
            list.add(j);
        }
    }
    int sum = 0;
    for (Integer integer : list) {
        sum += integer;
    }
    return sum == i;
}

五、效果展示

华为OD机试 - 完全数计算(Java 2023 B卷 100分)_第1张图片

六、纵览全局

遵循“按算法分类,由易到难”的刷题思路。

制定N期7日集训,达到有效刷题,高效刷题,顺序通关的目的。

1、 先了解华为OD机试,是个啥?

2、喜提华为OD算法总纲,运筹帷幄之中决胜千里之外。

在这里插入图片描述


下一篇:华为OD机试真题 Java 实现【简易内存池】【2023 B卷 200分 考生抽中题】

本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

你可能感兴趣的:(搬砖工逆袭Java架构师,华为od,java,python,开发语言)