2014-10-13 3 views
-2
public int[] factors(int n) { 
    int count[] = new int[n]; 
    for (int i = 1; i <= count.length; i++) { 
     count[i] = (count.length % i); 
     } 
     return count; 
     } 
    } 

У кого-нибудь есть идея перечислить все факторы?Перечислите множители целого числа

+0

что делает ваш метод факторы делают? Разве это не ответ на ваш вопрос? –

+1

Одно из предложений: Индекс массива начинается с '0'. –

+0

Думаю, ему это понравилось, потому что вы не можете разделить на 0. – lateralus

ответ

0

Вы должны использовать List вместо array. Поскольку вы не можете инициализировать массив, не зная размера.

Тогда вы можете попробовать что-то вроде следующих

public List<Integer> factors(int n) { 
    List<Integer> list = new ArrayList<>(); // initialize the list 
    for (int i = 1; i <= n; i++) { 
     if (n % i == 0) { // decide the factor. 
      list.add(i); // now i is a factor, needs to add to list 
     } 
    } 
    return list; // return list contains factors. 
} 
1
  • набор int i = 0;, как массив начинается с 0
  • фактор можно рассматривать только в том случае value % i==0 так добавить, если условие
  • Вам нужно еще одну переменную increment array Index, поскольку вы не можете использовать i для этого. Добавьте еще одну переменную, чтобы увеличить индекс массива, чтобы добавить коэффициент.
  • Подумайте больше о своем коде, отлаживайте, если это возможно, особенно, если это возможно, проверьте значения, добавьте инструкции печати, если необходимо, чтобы узнать, что происходит, и именно это вы обязательно выиграете.
  • Кроме этого, если вы можете использовать SOF вы можете использовать Google также :)
+1

+1 для указания подсказок на op –