10079.
Разрезание пиццы
Какое максимальное количество
кусков пиццы можно получить, сделав n
прямолинейных
разрезов ножом? Например, при n = 3 пиццу
можно разрезать на 7 кусков.
Вход.
Каждая строка содержит число прямолинейных разрезов ножом n (0 £ n £ 210000000). Признак конца входных данных n < 0.
Выход. Для каждого входного n вывести максимальное число кусков, на которое можно
разрезать пиццу.
5
10
-100
Пример выхода
16
56
комбинаторика
Пусть f(n) – максимальное количество частей, на которое n прямых могут разделить круг. Оно
равно максимальному числу частей, на которое n прямых могут разделить плоскость. Для получения максимального
числа частей необходимо, чтобы n –
ая прямая пересекалась со всеми n – 1 предыдущими прямыми, которые разбивают плоскость на f(n – 1) частей. То есть n – ая прямая должна пройти по n частям плоскости, каждая из которых будет разделена
пополам. Откуда
f(n) = f(n – 1) + n,
f(0) = 1
Решив рекуррентность, получим
f(n) = 1 + 1 + 2 + ... + n
= 1 + = +
+
Поскольку n £ 210000000, то объявим переменную n типа 64-битовое целое.
long long n;
Для каждого входного значения n находим результат по выше приведенной формуле.
while(scanf("%lld",&n),
n >= 0)
printf("%lld\n",(n + n * n)
/ 2 + 1);