2015-11-06 89 views
0

enter image description hereJava解密UML圖

我必須編寫一個計算一個數字的主要因素的程序。我已經完成了算法,我只是看不到如何使用hasMoreFactors和nextFactor方法。這裏是我的構造

int i = 2; 

while (num > 1) 
{ 
    if (num % i == 0) 
    { 
     System.out.println(i); // test if algorithm works 
     factor.add(i);  // adds factor to array list 
    } 
else 
{ 
    i++; 
} 

內部算法我的直覺是,我在要使用的算法hasMoreFactors,所以我將取代這個:

if (num % i == 0) 

與hasMoreFactors()。

if (hasMoreFactors() == true) 

回答

0

你在那裏有迭代器模式。您正在提供可迭代的數據類型Factors。這意味着您的代碼的客戶端將傳遞一個數字來獲取所有計算的因素,然後將檢索它們。

您有疑問的兩種方法不適合您使用本身;他們不需要用在計算因子的代碼中。它們是客戶用來獲取這些計算出的數字的接口的一部分。

需要實現他們這是另一個問題。給你的主要提示是你需要跟蹤用戶當前的索引。

看看Java Iterator interface可能會有所幫助。