你有一块椭圆的地。你可以在边界上选n个点,并两两连接得到n*(n-1)/2条线段。它们最多能把土地分成多少个部分?
样例输入:4
样例输出:8
代码:
#include <iostream> //利用欧拉公式:v-e-f=2 v是交点数(线段的端点及两个线段的交点) ,e边数(n段弧加上这些线段被切成的段数)f面数(土地块数加上外面那个无穷大的数)
using namespace std;
int main()
{
int i,n,m,sum1,sum2,v,e;
while(cin>>n)
{
for(i=0,v=0,e=0;i<=n-2;i++)
{
v+=i*(n-2-i);
e+=i*(n-2-i)+1;
}
v=n+n*v*1.0/4;
e=n+n*e*1.0/2;
cout<<e-v+1<<endl;
}
return 0;
}