在一个圆上画n条直线,问最多能将圆分成多少个区域?
输入
每行一个整数,表示画n条直线,输入遇到-1结束。
输出
每行输出一个整数,为对应测试样例的答案。
要想把圆分成的块数最多,那么增加的每一条线都不能过前面所有的交点。
圆面本身是一个部分;
第一条直线只能穿过圆面本身这一个部分,画第一条直线时圆面加一个部分,最多分成1+1=2 块;
第二条直线只能穿过两个部分,画第二条直线时圆面加两个部分,最多分成1+(1+2)=4 块;
第三条直线只能穿过三个部分,画第三条直线时圆面加三个部分,最多分1+(1+2+3)=7 块;
依次类推可得,n条直线,最多分成1+(1+2+3+4+…+n) 块
即n*(n+1)/2+1 块。(等差数列求和)
#include <stdio.h>
int main()
{
int n,ans;
while(scanf("%d",&n)!=EOF&&n!=(-1))
{
ans = n*(n+1)/2+1;
printf("%d\n",ans);
}
return 0;
}