2015-11-06 91 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可能会有所帮助。