http://acm.hdu.edu.cn/showproblem.php?pid=1290
这道题主要是平面划分空间的递推公式。
貌似初中好像学过。。。
都忘了,晕
还上网看了 推导公式、
(1)n条直线,最多可以把平面分为多少个区域。
当有n-1条直线时,平面最多被分成了f(n-1)个区域。则第n条直线要是切成的区域数最多,就必须与每条直线相交且不能有同一交点。 这样就会得到n-1个交点。这些交点将第n条直线分为2条射线和n-2条线断。而每条射线和线断将以有的区域一分为二。这样就多出了2+(n-2)个区域。
故:f(n)=f(n-1)+n
=f(n-2)+(n-1)+n
……
=f(1)+1+2+……+n
=n(n+1)/2+1
(2)
设n刀最多可以切成g(n)块,则g(n)=g(n-1)+f(n-1)
可以通过拆项推出 g(n)=(n^3+5n)/6+1
代码
#include<stdio.h>
void main()
{
int n;
while(scanf("%d",&n)!=EOF)
printf("%d\n",(n*n*n+5*n)/6+1);
}