Задача:
Даны натуральное число n, действительные числа [latex]a_{1}, …, a_{n}[/latex] [latex]\left( n\geq 3\right)[/latex] .
Получить [latex]b_{1}, …, b_{n-2}[/latex], где [latex]b_{i} = a_{i + 1} + a_{i + 2}[/latex], [latex]i=1, 2 , … , n-2[/latex].
Таблица:
[latex]a_{1}, …, a_{n}[/latex] | [latex]b_{1}, …, b_{n-2}[/latex] | Комментарий |
1 2 3 4 5 6 7 | 5 7 9 11 13 | Пройден |
1.235 2.457 2.543 4.457 4.543 6.457 6.543 | 5 7 9 11 13 | Пройден |
9 -12 17 -10 19 -8 21 | 5 7 9 11 13 | Пройден |
-21 26 -21 28 -19 30 -17 22 -15 24 -13 26 | 5 7 9 11 13 5 7 9 11 13 | Пройден |
21 -26 21 -28 19 -30 17 -22 15 -24 13 -26 | -5 -7 -9 -11 -13 -5 -7 -9 -11 -13 | Пройден |
Исходный код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream> using namespace std; int main() { double a, c, d; // Объявление переменных. double S; // cin >> c >> d; // Ввод значений буферных переменных. Более "с" вообще использоваться не будет. while(cin >> a){ // Цикл ввода данных. S=a+d; // Создание элементов второй последовательности. d=a; // Смена элементов. cout <<" "<< S <<" "; //Вывод элементов. } return 0; Конец. } |
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <iostream> using namespace std; int main() { double a, c, d; // Объявление переменных. cin >> c >> d; // Ввод значений буферных переменных. Более "с" вообще использоваться не будет. while(cin >> a){ // Цикл ввода данных. cout <<" "<< a+d <<" "; //Вывод элементов. d=a; // Смена элементов. } return 0; Конец. } |
Код на Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import java.util.*; import java.lang.*; import java.io.*; public class Main { private static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); private static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); public static void main (String[] args) throws java.lang.Exception { Double a = 0.0; Double b = 0.0; while(in.nextToken() != StreamTokenizer.TT_EOF){ a = in.nval; out.print(a + b); out.print(" "); b = a; } out.flush(); } } |
Описание:
Для выполнения условия задачи необходимо пропустить первый элемент первой последовательности и начать суммирование второго и третьего элементов (далее третьего и четвертого, четвертого и пятого и т. д.). Для этого я ввел переменную, в которой будет храниться первый элемент вводимой последовательности (более он использоваться не будет). Далее создаем цикл, в котором будем одновременно вводить значения элементов первой последовательности и выводить элементы результирующей последовательности.
Алгоритм:
- Объявление необходимых переменных.
- Отдельно ввод первого и второго элемента первой последовательности.
- Создание цикла для ввода данных.
- Печать суммы второго и третьего элемента первой последовательности (первый элемент результирующей последовательности).
- Обеспечение сдвига суммируемых элементов (со второго и третьего на третий и четвертый и т. д.)
- Окончание работы программы после завершения цикла.
Ссылка на Ideone.
Засчитано, 8 баллов (октябрьское задание).