Мама попросила
Васю полить все молодые деревца в саду. Вася знает, что пока деревья маленькие,
их надо очень хорошо поливать. А вот сколько поливать – неизвестно. Но Вася –
очень умный мальчик. Он внимательно прочитал весь учебник ботаники для средней
школы и выяснил, что полив прямо пропорционален количеству листьев на дереве.
Для хорошего роста деревьев достаточно выливать под дерево ежедневно по одному
литру воды на каждый лист.
К счастью Васи
оказалось, что листья на деревьях растут ярусами, причем на верхнем ярусе два
листа, на втором – четыре, на следующем – шесть, и так далее, на каждом
последующем ярусе на два листа больше по сравнению с предыдущим. А на самой
верхушке растет еще один листик. Хитрый Вася послал младшую сестренку Машеньку
подсчитать количество ярусов на каждом дереве, а Вас просит написать программу,
которая для каждого дерева вычислит количество литров воды для его полива.
Вход. Количество ярусов n (0 ≤ n ≤
1000) на дереве.
Выход. Вывести количество литров воды для полива этого дерева.
Пример
входа |
Пример
выхода |
3 |
13 |
математика
Количество
листьев справа от стебля равно 1 + 2 + …. + n (дерево содержит n
ярусов). Слева от стебля число листьев такое же. И сверху еще один листок.
Количество
литров воды для полива равно числу листьев в дереве. Оно равно
1 + 2 * (1 + 2 +
3 + ... + n) = 1 + = 1 + (1 + n)
* n
Совершим
вычисление ответа по выше приведенной формуле.
scanf("%d",&n);
res = n * (n +
1) + 1;
printf("%d\n",res);
Реализация через указатели
#include <stdio.h>
int *n, *res;
int main(void)
{
n = new int;
res = new int;
scanf("%d",n);
*res = *n * (*n + 1) + 1;
printf("%d\n",*res);
delete n;
delete res;
return 0;
}
Реализация при помощи класса
#include <stdio.h>
class Long
{
private:
long long value;
public:
Long(long long value = 0) : value(value) {}
void Read(void)
{
scanf("%lld",&value);
}
void Print(void)
{
printf("%lld\n",value);
}
Long operator+
(long long x)
{
return
value + x;
}
Long operator*
(const Long &x)
{
return
value * x.value;
}
};
int main(void)
{
Long n, res;
n.Read();
res = n * (n + 1) + 1;
res.Print();
return 0;
}
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int n = con.nextInt();
int res = n * (n + 1) + 1;
System.out.println(res);
}
}
Python реализация
n = int(input())
res = n * (n +
1) + 1
print(res)