这篇博文同上篇博文百度2017年暑期实习生笔试题——单词接龙同属2016中兴捧月蓝剑之路挑战赛初赛模拟测试题,相比前一题难度偏低,非恶意灌水,仅为保证该系列博文的完整性。

 

  题目来源:iNOC产品部–完全数计算

  这道题同时也是2016中兴捧月蓝剑之路挑战赛初赛模拟测试题,问题描述如下图:

 

  测试用例如下图:

 

  中兴的比赛中官方已经为我们实现了主程序,只需要我们自己实现PerfectNumber类的perfectNumberCheck方法即可,而华为iNOC产品部机试题是要统计出所给范围内完全数的个数,比中兴的模拟题稍复杂,以此为准,Java实现的源码如下:

 

package perfectnumber;

public class Main 
{

    public static void main(String[] args) 
    {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        while(scan.hasNext())
        {
            int n = scan.nextInt();
            int sum = 0;
            for(int i = 1; i <= n; i++)
            {
                if(PerfectNumber.perfectNumberCheck(i) == 1)
                    sum++;
            }
            System.out.println(sum);
            
        }
        scan.close();
    }
    
}

class PerfectNumber {

    public static int perfectNumberCheck(int n)
    {
        int sum = 0;
        for(int i = 1; i < n; i++)
        {
            if(n % i == 0)
                sum += i;
        }
        if(sum == n)
            return 1;
        else
            return 0;
    }
}

 

版权声明:本文为eniac12原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/eniac12/p/5585324.html