HDU2050

找规律题。与直线分割平面的求法一样。

)1条直线,将平面分为两个部分
2条直线,较之前增加1条直线,增加1个交点,增加了2个平面部分
3条直线,与之前两条直线均相交,增加2个交点,增加了3个平面部分
4条直线,与之前三条直线均相交,增加3个交点,增加了4个平面部分
......
n条直线,与之前n-1条直线均相交,增加n-1个交点,增加个n个平面部分

所以n条直线分平面的总数为2+(2+3+4+5+6+7+8+ ...n)=1+(1+2+3+4+5+6+7+8+ ...n)=1+[n*(n+1)/2]=(n2+n+2)/2

2)    sum(n)=2+5+9+13+17+21+...+4*n-3=1+1+5+9+13+17+....+4*n-3=1+n*(1+4*n-3)/2=2*n*n+n-1;
*【直线与折线的思想相同】。

1 #include"iostream"
2  using namespace std;
3 int main()
4 {
5 int i, c,a[1000],sum;
6 while(cin>>c)
7 {
8 for(i=0;i<c;i++)
9 cin>>a[i];
10 for(i=0;i<c;i++)
11 if(a[i]>0&&a[i]<=10000)
12 {
13 sum=2*a[i]*a[i]-a[i]+1;
14 cout<<sum<<endl;
15 }
16 }
17 return 0;
18 }

 

posted @ 2010-10-14 20:33  聊聊IT那些事  阅读(415)  评论(0编辑  收藏  举报