首先,先推理直线划分面的情况。
当直线数目为0时,平面数目为1
当直线数目为1时,平面数目为2
依次类推,可得
可以发现,这是一个数列。
f[n]=f[n-1]+n;
但是,这只是直线的,而题目要求是折角的,变化如下:
平面数减少了2!
下附AC代码:
/*HDOJ1005
作者:陈佳润
2013-04-09
*/
#include<iostream>
using namespace std;
long line[10005];
int main(){
int i,k,time,n;
long int t;
line[0]=1;
line[1]=2;
k=3;
t=4;
for(i=2;i<=10000;i++){//预处理,先算出所以情况
t+=k;
k++;
t+=k;
k++;
line[i]=t-2*i;
}
cin>>time;
while(time--){
cin>>n;
cout<<line[n]<<endl;
}
return 0;
}