Условие задачи
В массиве [latex]C(m)[/latex] заменить каждый третий элемент полусуммой двух предыдущих, а стоящий перед ним — полусуммой соседних с ним элементов.
Алгоритм решения
1.Инициализируем переменную [latex]n[/latex], которая будет размером массива и сам массив [latex]a[/latex];
2.С помощью ввода задаем длину массива;
3.С помощью цикла и ввода заполняем массив;
3.Меняем каждый третий элемент начиная со второго;
4.Находим полусумму двух предыдущих элементов;
5.Берем число стоящее перед числом кратным трем;
6.Заменяем его на полусумму стоящих рядом элементов.
Тесты
Кол-во элементов | Элементы | Результат |
3 | 5 9 1 | 5 3 7 |
6 | 8 7 6 9 4 0 | 8 7 7,5 9 4,5 6,5 |
9 | 2 5 7 3 6 9 4 6 | 2 4,5 3,5 3 6 4,5 4 5,5 5 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) throws java.lang.Exception { int n; // Инициализируем переменную n; double a[]; // Инициализируем массив a; Scanner sc = new Scanner(System.in); n = sc.nextInt(); //Вводим размер массива; a = new double[n]; for(int i = 0; i < n ; ++i){ a[i] = sc.nextInt(); //Вводим элементы массива; } if(n >= 3){ for(int i = 2; i < n; i+=3){ double tmp = a[i - 1]; a[i - 1] = (a[i] + a[i - 2])/2; //Находим полусумму двух предыдущих элементов; a[i] = (tmp + a[i - 2])/2; //Заменяем число кратное трем на полусумму стоящих рядом элементов; } for(int i = 0; i < n ; ++i){ System.out.println(a[i]); } } sc.close(); } } |
Код на ideone.com.
Задача оригинал на языке С++(другого автора) на java.mazurok.com.