8Q - 献给杭电五十周年校庆的礼物

我不能参赛,就送给学校一个DOOM III球形大蛋糕吧。
等一等,吃蛋糕之前先考大家一个问题:如果校长大人在蛋糕上切了N刀(校长刀法极好,每一刀都是一个绝对的平面),最多可以把这个球形蛋糕切成几块呢? 

Input

输入数据包含多个测试实例,每个实例占一行,每行包含一个整数n(1<=n<=1000),表示切的刀数。 

Output

对于每组输入数据,请输出对应的蛋糕块数,每个测试实例输出一行。 

Sample Input

1
2
3

Sample Output

2
4
8

// 详见代码
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n;
 5     while(~scanf("%d", &n))
 6     // 在同一平面内,n条直线最多可将平面分为1/2*(n^2+n)+1个部分 
 7     //(累加法 f(n)=f(n-1)+n,f(n)-2=(2+n)*(n-1)/2) 
 8     // n个平面最多可将空间分为(n^3+5*n+6)/6个部分 
 9     //(累加法 g(n)=g(n-1)+f(n-1),g(n)-2=1/2*[n*(n-1)/2+1/6*(n*(n-1)*(2n-1))]+(n-1)) 
10         printf("%d\n", (n*n*n+5*n+6)/6);
11     return 0;
12 }
View Code

 

posted @ 2019-02-07 23:18  Blind  阅读(300)  评论(0编辑  收藏  举报