HDU 1290 献给杭电五十周年校庆的礼物

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1290

1.计算直线最多能将平面切割成几个部分:

第n个直线最多和之前的n-1条直线相交,有n-1个交点,将n个平面一分为2,因此f(n)=f(n-1)+n;得到f(n)=(n+1)n/2+1;

2.计算平面最多将空间分成多少个部分:

第n个平面最多和之前的n-1个平面相交,这些平面上最多有n-1条交线将该平面分成了f(n-1)份,这些平面将原来 的空间一分为二。

于是g(n)=f(n-1)+g(n-1);

最后得到:g(n) = (n^3+5n+6)/6;

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
	int n;
	while(scanf("%d",&n)==1){
		printf("%d\n",(n*n*n+5*n+6)/6);
	}
} 

 

posted @ 2015-06-07 15:16  湖心北斗  阅读(170)  评论(0编辑  收藏  举报