Составить программу нахождения произведения квадратов первых двухсот чисел.

 
 
 
Сообщения: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);
}
 
 
Сообщения: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
 
 
Сообщения: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);
    }
спасибо!!)
 
Модераторы:frymock
Сейчас эту тему просматривают:Нет