8Q - 献给杭电五十周年校庆的礼物
我不能参赛,就送给学校一个DOOM III球形大蛋糕吧。
等一等,吃蛋糕之前先考大家一个问题:如果校长大人在蛋糕上切了N刀(校长刀法极好,每一刀都是一个绝对的平面),最多可以把这个球形蛋糕切成几块呢?
等一等,吃蛋糕之前先考大家一个问题:如果校长大人在蛋糕上切了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 }