Задача
Даны действительные числа [latex]a_{1},[/latex] … [latex], a_{n},[/latex] [latex]b_{1},[/latex] … [latex], b_{n}[/latex]. Вычислить [latex](a_{1} + b_{n})(a_{2} + b_{n-1})[/latex] … [latex](a_{n} + b_{1})[/latex].
Тесты
Test № | Input | Output |
1 | 1 2 3 4 5 6 | 343 |
2 | 1 1 1 1 | 4 |
3 | 0.5 0.1 0.07 -4 7 13 | -376.691 |
4 | 0 0 0 0 0 0 0 0 | 0 |
5 | 0.4 0.3 2 -1 0.7 0.6 | 1 |
Код программы
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 <long double> c; long double m, sum = 0, result = 1; while (cin >> m){ c.push_back(m); } for (int i = 0; i < c.size()/2; i++){ sum = c[i] + c[c.size() - 1 - i]; result *= sum; } cout << result << endl; return 0; } |
Алгоритм решения
Считываем все действительные числа до конца входного потока и записываем их в один вектор
c. Далее работаем по такому алгоритму: складываем первый элемент вектора с последним, а полученный результат умножаем на переменную
result, значение которой изначально равно единице, т.к, единица — нейтральный элемент при умножении. Далее складываем второй элемент вектора с предпоследним, а полученный результат снова умножаем на переменную
result и т.д. Так делаем до тех пор, пока не дойдем но середины вектора
c. Затем выводим полученное значение переменной
result.
Хорошо, принято.
Есть вопрос по оформлению. Если в описании Вы упоминаете переменную (например, result), то нет необходимости ее кодировать в latex как математическую формулу. Лучше воспользоваться тегом code как для фрагментов кода программы. Это логичнее.