2017-02-17 5 views
1

Я тренируюсь с переменными аргументами, и я хочу найти продукт чисел. Это первый способ, которым я мог бы понять, как это сделать. Я чувствую, что могу сделать это, не используя ArrayList, но я просто не вижу, как это сделать.Используйте переменный аргумент, чтобы найти Продукт чисел без ArrayList?

import java.util.*; 

public class variableMethod 
{ 
    public static void main(String[] satharel) 
    { 
     System.out.printf("The product of 5 and 10: \t\t%3d%n", productFinder(5, 10)); 
     System.out.printf("The product of 2 and 3 and 4: \t\t%3d%n", productFinder(2, 3, 4)); 
     System.out.printf("The product of 1 and 2 and 3: \t\t%3d%n", productFinder(1, 2, 3)); 
     System.out.printf("The product of 7 and 2 and 4 and 5: \t%3d%n", productFinder(7, 2, 4, 5)); 

    } 

    public static int productFinder(int... num) 
    { 
     ArrayList<Integer> numbers = new ArrayList<Integer>(); 

     for(int n : num) 
      numbers.add(n); 

     int first = numbers.get(0); 

     for(int i = 1; i < numbers.size(); i++) 
      first *= numbers.get(i); 

     return first; 
    } 
} 

ответ

1

Да, вы можете, переменные аргументы рассматриваются как массивы увидеть это answer, так что вы можете перебирать их, как обычный массив:

public static int productFinder(int... num) 
{ 
    int product = 1; 
    for(int i = 0; i < num.length; i++) { 
     product *= num[i]; 
    } 
    return product; 
} 
+0

А, это очень полезно! Кроме того, я бы написал «product * = num [i]» вместо «product * = num [1]» – atlantoc

+0

Я отредактировал это :) – Fahad

3

Несомненно, вам не нужен список. Просто перебирайте массив и создавайте продукт.

public static int productFinder(int... num) { 
     int result = 1; 
     for (int i = 0; i < num.length; i++) { 
      result *= num[i]; 
     } 
     return result; 
    } 
+0

я бы, вероятно, начать с результатом == 1 – Dirk

+1

@Dirk ThankYou спасатель жизни: D –

+0

Ничего себе. Почему я не мог увидеть такой простой ответ? Спасибо огромное! Мне нравится простота этого. – atlantoc

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