同一個平面內有n(n<=500)條直線,已知其中p(n>=p>=2)條直線相交于同一點。
則這n條直線最多能將平面分割成多少個不同的區域?
分析:觀察發現原有的p條線把平面分為2p個區域。為了能夠劃分出盡可能多的區域,從第p+1條線開始,添加每條線時都應該使新加的這條線和先前所有線相交于新的點。(也就是說,除了最早的p條線共點外,沒有其他線三線共點。)
另外,觀察發現:按照上述方法添加直線時,假設當前平面有x條直線,添加一條線以后將新增加x+1個區域。所以只要累加每一次新增加的區域數即可。
?
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { 6 freopen("surface_data/surface1.in","r",stdin); 7 freopen("surface_data/surface1.txt","w",stdout); 8 int n,p; 9 int i,sum=0; 10 scanf("%d%d",&n,&p); 11 sum=p*2; 12 for(i=p+1;i<=n;i++) 13 { 14 sum=sum+i; 15 } 16 printf("%d\n",sum); 17 return 0; 18 }
?