[HackerRank]Java的介面(Java Interface)

題目描述

一個Java介面中,可以包含方法的簽名和欄位,介面可以被用來達成多型的概念。這個題目會讓您練習介面的相關知識。

您有一個AdvancedArithmetic介面,他包含了一個「public abstract int divisorSum(int n)」方法。您必須再寫一個MyCalculator類別去實作這個介面。

divisorSum方法只能輸入一個整數,找出這個整數的所有因數,並將它們加總之後把加總結果回傳。舉例來說,6的因數有1, 2, 3, 6,所以divisorSum方法計算後會回傳12。傳入的整數n的最大值為1000。

原題網址

https://www.hackerrank.com/challenges/java-interface

範例輸入

6

範例輸出

I implemented: AdvancedArithmetic
12

解題概念

如果n為1,直接回傳1;如果n小於1,回傳0。

首先先計算根號n的數,因為n的因數,除了自己本身外,其他的因數必定小於等於根號n。接著從2開始到根號n,逐一尋找可以整除n的數字,並將這些數字加總後,再加上n + 1之後回傳。

參考答案

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章