题目描述
一个圆上有n个点,所有点两两相连,求最后能将圆分成多少个不相交的区域
输入格式
一个整数n(1<=n<=10000)
输出格式
输出一个整数,不相交区域个数
样例输入content_copy
3
样例输出content_copy开始
4
这一题实际上就是数学题,意思是n个点两两相连后,最多可以把圆分为多少块区域。
刚开始在找规律找了2-5个点的后还以为是2的n-1次方,但是上交之后错了 ,后面画了6个点的后发现六个点两两相连最后不相交区域是31,不符合我上面说的规律。
每两个点构成一条弦,可增加一块区域;每四个点构成一对相交弦,在原来的基础上再增加一块区域。所以公式为: n+(n-1)*(n-2)*(n^2-3*n+12)/24
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n;
cin>>n;
long long m = n+(n-1)*(n-2)*(pow(n,2)-3*n+12)/24;
cout<<m<<endl;
}