public static void main(String[] args) { int[] array = new int[200]; long sum = 1; for (int i = 1, k = 0; i <= 200; i++, k++) { array[k] = i * i; } for (int i = 1; i < 200; i++) { sum = sum * array[i] * array[i - 1]; } System.out.println(sum); }
15 сен 2020 18:57 | |
Сообщения:41
|
Все бы ничего: кажется даже, что написано верно - но, по каким-то причинам, все время выводит ноль, независимо от способа решения (а перепробовала я их, штук 5)
public static void main(String[] args) { int[] array = new int[200]; long sum = 1; for (int i = 1, k = 0; i <= 200; i++, k++) { array[k] = i * i; } for (int i = 1; i < 200; i++) { sum = sum * array[i] * array[i - 1]; } System.out.println(sum); } |
15 сен 2020 22:06 | |
Сообщения:214
|
Почитайте за переполнение.
public static void main(String[] args) { int N = 200; int[] array = new int[N]; for (int i = 1, k = 0; i <= N; i++, k++) { array[k] = i * i; } BigDecimal product = BigDecimal.ONE; for (int i = 1; i < N; i++) { product = product.multiply(BigDecimal.valueOf(array[i]).multiply(BigDecimal.valueOf(array[i - 1]))); } System.out.println(product); } UPD: Вообще, логика неверна. Вроде, так: public static void main(String[] args) { int N = 200; int[] array = new int[N]; for (int i = 1, k = 0; i <= N; i++, k++) { array[k] = i * i; } BigDecimal product = BigDecimal.ONE; for (int i = 0; i < N; i++) { product = product.multiply(BigDecimal.valueOf(array[i])); } System.out.println(product); } |
Изменен:15 сен 2020 19:09 |
15 сен 2020 22:15 | |
Сообщения:41
|
FarSeer:
спасибо!!)
Почитайте за переполнение.
public static void main(String[] args) { int N = 200; int[] array = new int[N]; for (int i = 1, k = 0; i <= N; i++, k++) { array[k] = i * i; } BigDecimal product = BigDecimal.ONE; for (int i = 1; i < N; i++) { product = product.multiply(BigDecimal.valueOf(array[i]).multiply(BigDecimal.valueOf(array[i - 1]))); } System.out.println(product); } UPD: Вообще, логика неверна. Вроде, так: public static void main(String[] args) { int N = 200; int[] array = new int[N]; for (int i = 1, k = 0; i <= N; i++, k++) { array[k] = i * i; } BigDecimal product = BigDecimal.ONE; for (int i = 0; i < N; i++) { product = product.multiply(BigDecimal.valueOf(array[i])); } System.out.println(product); } |