1. 程式人生 > >華為機試題——完全數判斷

華為機試題——完全數判斷

  這篇博文同上篇博文百度2017年暑期實習生筆試題——單詞接龍同屬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; } }