给定一个整数数组,创建一个新数组,使得新数组索引i
处的每个元素都是原始数组中除 at 之外的所有数字的乘积i
。
例如,如果我们的输入是[1, 2, 3, 4, 5]
,那么预期的输出就是[120, 60, 40, 30, 24]
。如果我们的输入是[3, 2, 1]
,预期的输出将是[2, 3, 6]
。
注意:不要使用除法。
import java.util.Scanner;
public class Productofarray {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int prod = 1, i, j = 0;
System.out.println("How many values do you want to enter");
int n = sc.nextInt();
int a[] = new int[n];
int a2[] = new int[n];
System.out.println("Input " + n + " values:");
for (i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
for (i = 0; i < n; i++) {
inner:
while (j < n) {
if (a[j] == a[i]) {
j++;
continue inner;
}
prod *= a[j];
}
a2[i] = prod;
System.out.println(a2[i]);
}
}
}
我已经编写了这段代码,但问题是它一直在运行并且它永远不会结束,有人可以帮助我在这里做错了什么。