似乎应该有一种方法用for()循环编写product()调用。我无法弄清楚该怎么做。有人知道吗?
// store numbers
int[] i = { 1, 7, 2, 4, 6, 54, 25, 23, 10, 65 };
System.out.println(product(i[0]));
System.out.println(product(i[0], i[1]));
........
System.out.println(product(i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8], i[9]));
public static int product(int... num) {...}
我已经有产品写了,我只需要用产品(i [0])到产品(i [0],i [1],i [2] ......,[9])的参数调用产品
最终代码:
// Calculate product of any amount of numbers
public static void main(String[] args)
{
// create Scanner for input
Scanner in = new Scanner(System.in);
// store numbers
int[] array = { 1, 7, 2, 4, 6, 14, 25, 23, 10, 35 };
for (int j = 1 ; j <= array.length; j++) {
// Construct a temporary array with the required subset of items
int[] tmp = new int[j];
// Copy from the original into the temporary
System.arraycopy(array, 0, tmp, 0, j);
// Make a call of product()
System.out.println(product(tmp));
} // end for
} // end method main
public static int product(int... num)
{
// product
int product = 1;
// calculate product
for(int i : num)
product *= i;
return product;
} // end method product
答案 0 :(得分:2)
您需要使用所需数量的项创建int
的临时数组,将i
的子数组复制到该临时数组中,然后将其传递给product
像这样:
for (int count = 1 ; count <= i.length() ; count++) {
// Construct a temporary array with the required subset of items
int[] tmp = new int[count];
// Copy from the original into the temporary
System.arraycopy(i, 0, tmp, 0, count);
// Make a call of product()
System.out.println(product(tmp));
}
答案 1 :(得分:0)
我循环并跟踪每个产品结果,然后将这些值放在一个新数组中。最后,使用所有产品在新创建的阵列上调用product方法。
int[] listOfProducts = new int[i.length];
int [] tempArray;
for(int x = 0; x<i.length; x++){
//copy i[0] to i[x] into tempArray
System.arraycopy(i, 0, tempArray, 0, x+1);
listOfProducts[x] = product(tempArray);
}
System.out.println(product(listOfProducts));
答案 2 :(得分:0)
如果我理解正确,你正在寻找一种方法来编写一个带有可变数量参数的product
方法。这可以通过使用...
语法来实现,这将使您的方法获取给定类型的任意数量的参数,并允许您将它们作为方法内的数组来处理。
E.g:
public static int product (int... numbers) {
int product = 1;
for (int number : numbers) {
product *= number;
}
return product;
}