Страницы

Поиск по вопросам

воскресенье, 2 февраля 2020 г.

Как заполнить массив значениями, каждое из которых больше предыдущего на 3, с помощью цикла

#java #массивы #циклы


Нужно создать пустой массив из 10 целых чисел и с помощью цикла заполнить его значениями,
каждое из которых будет на 3 больше предыдущего (начиная с 1), то есть получить [1,
4, 7, 10, 13, 16, 19, 22, 25, 28].

Написал такой код:

public class massiv {

    public static void main(String[] args) {
        int[] array = new int[10];
        array[0] = 1;
        for (int i = 0; i < array.length; i++) {
            array[i] = array[i] + 3; //вот тут туплю - не пойму как решить
            System.out.println(array[i]);
        }
    }
}


Как правильно заполнить массив?
    


Ответы

Ответ 1



Цикл со второго элемента массива. public static void main(String[] args) { int[] array = new int[10]; array[0] = 1; for (int i = 1; i < array.length; i++) { array[i] = array[i - 1] + 3;//вот тут туплю - не пойму как решить System.out.println(array[i]); } } До начала цикла мы присваиваем значение элементу [0]. Затем начинаем цикл с элемента [1]. На каждом шаге итерации мы используем предыдущий элемент для добавления к нему 3 и присвоения следующему элементу. Так цикл работает: array[1] = array[0] + 3. Получаем array[1] = 4. Потом array[2] = array[1]+3. Получаем array[2] = 4+3 = 7, ну и т.д.

Ответ 2



Так как заданную рекурсивную функцию F(0) = 1; F(n) = F(n - 1) + 3; Можно заменить на нерекурсивную: F(n) = n * 3 + 1; То можно сделать чуть короче с привязкой значения к номеру итерации (i): int[] array = new int[10]; for (int i = 0; i < array.length; i++) { array[i] = i * 3 + 1; } А в случае использования Java 8: int[] array = IntStream.range(0, 10).map(e -> e * 3 + 1).toArray();

Ответ 3



array[i] = array[i]+3;//вот тут туплю - не пойму как решить да, именно тут загвоздка, Вы, вероятно, хотите увеличить значение предыдущего элемента на 3. Для этого можно сделать так: array[i] = array[i-1]+3; Однако, в этом случае нужно начать цикл не с нулевого элемента array[0], а с первого array[1], потому как элемента array[i-1] (т.е. array[0-1]) не существует

Ответ 4



public static void main(String[] args) { int[] array = new int[10]; int value = 1; for (int i = 0; i < array.length; i++) { array[i] = value; value += 3; System.out.println(array[i]); } }

Ответ 5



for (int i = 0; i < array.length; i++) { for (int i = 1; i < array.length; i++) { array[i] = array[i] + 3; array[i] = array[i-1] + 3;

Комментариев нет:

Отправить комментарий