Задача взята с сайта www.e-olymp.com
Условие задачи
Мама попросила Васю полить все молодые деревца в саду. Вася знает, что пока деревья маленькие, их надо очень хорошо поливать. А вот сколько поливать — неизвестно. Но Вася — очень умный мальчик. Он внимательно прочитал весь учебник ботаники для средней школы и выяснил, что полив прямо пропорционален количеству листьев на дереве. Для хорошего роста деревьев достаточно выливать под дерево ежедневно по одному литру воды на каждый лист.
К счастью Васи оказалось, что листья на деревьях растут ярусами, причем на верхнем ярусе два листа, на втором — четыре, на следующем — шесть, и так далее, на каждом последующем ярусе на два листа больше по сравнению с предыдущим. А на самой верхушке растет еще один листик. Хитрый Вася послал младшую сестренку Машеньку подсчитать количество ярусов на каждом дереве, а Вас просит написать программу, которая для каждого дерева вычислит количество литров воды для его полива.
Входные данные
Количество ярусов [latex]n (0 \leq n \leq 1000)[/latex] на дереве.
Выходные данные
Вывести количество литров воды для полива этого дерева.
Тесты
Входные данные | Выходные данные | |
1. | 3 | 13 |
2. | 0 | 1 |
3. | 50 | 2551 |
4. | 560 | 314161 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <iostream> using namespace std; int main() { int n,a=0,sum=0; cin >> n; for(int i=0 ; i<n ; i++){ a = a + 2; sum = sum + a; } cout << (sum+1) << endl; return 0; } |
Решение
Для решения этой задачи необходимо найти сумму арифметической прогрессии, где [latex]N=n,[/latex] [latex]a_{1} = 2[/latex] и [latex]d = 2[/latex] и добавить к ней единицу (лист с верхушки). Для этого можно воспользоваться формулой суммы арифметической прогрессии [latex]Sn=\frac{2a_{1}+d\left(n-1 \right)}{2}n \rightarrow n^2+n[/latex], либо при помощи цикла [latex]n[/latex] раз прибавлять к [latex]a[/latex] двойку, получая при этом следующий член прогрессии и добавлять его к сумме.
Засчитанное решение на e-olymp.com
Да, действительно задача на формулу и цикл можно не использовать. Согласен.
Зачтено.