2015-11-06 2 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. Это означает, что клиент вашего кода будет передавать ему число, чтобы получить все рассчитанные коэффициенты, а затем будет извлекать их.

У двух методов, о которых у вас есть вопросы, вы не можете использовать per-se; они не должны использоваться в коде расчета коэффициентов. Они являются частью интерфейса, который клиент использует для получения этих расчетных чисел.

do необходимо выполнить их, что является другим вопросом. Основной намек, данный вам, заключается в том, что вам нужно отслеживать текущий индекс, на котором находится пользователь.

Если вы посмотрите на Java Iterator interface, это может помочь.

Смежные вопросы