Задача
Даны действительные числа [latex]a_{1}, a_{2}, \cdots, a_{2n}.[/latex] Получить [latex]a_{1}+a_{2n}, a_{2}+ a_{2n-1}, \cdots, a_{n}+a_{n+1}.[/latex]
Тесты
Входные данные | Выходные данные |
2 4 6 2 2 9 7 5 | 7 11 15 4 |
1 2 2 1 | 1 4 |
139 64 15 20 10 5 6 1 | 140 70 20 30 |
111111 22222 33333 11 25 4 | 111115 22247 33344 |
15 7 6 9 | 24 13 |
2 2 | 4 |
138 56 78 3 | 141 134 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <iostream> #include <vector> using namespace std; int main() { vector <int> a; int b; while (cin>>b) { a.push_back(b); } for (int i = 0; i<a.size()/2; i++) { cout<<a[i] + a[a.size()-i-1]<<" "; } return 0; } |
Решение задачи
Считаем все числа [latex]a_{1}, \cdots, a_{2n}[/latex] в ранее объявленный вектор, пока есть, что считывать. Поскольку мы используем класс vector и цикл while (cin >> b) и метод push_back(), в числе [latex]n[/latex] нет необходимости, а во входых данных присутствуют только сами числа [latex]a_{1}, \cdots, a_{2n}[/latex]. Далее, чтобы узнать количество элементов в векторе, будем использовать метод size(). Остается только выводить в цикле сумму двух текущих чисел, начиная с краев вектора и сдвигаясь в каждом витке на элемент ближе к центру вектора, пока не дойдем до центра.
Ссылки
Задача взята из задачника С. Абрамова;
Ссылка на код на ideone.com.