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);

	}

} 

 

你可能感兴趣的:(HDU)