在圆上点三个点时,除圆上三个交点外,圆内没有交点;在圆上点四个点时,除圆上四个交点外,圆内出现了一个交点,因此,在N个点中每四个点便可以在圆内产生一个交点,因此N个点在圆内形成的点的个数为CN4,总的交点数就是CN4+N。贴代码:
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <ctype.h>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
#define eps 1e-8
#define INF 0x7fffffff
#define PI acos(-1.0)
#define seed 31//131,1313
typedef long long LL;
typedef unsigned long long int ULL;
using namespace std;
int main()
{
int t;
ULL n;
scanf("%d",&t);
while(t--){
scanf("%I64u",&n);
ULL sum=n; //数据较大,LL可能会wa
if(n>=4) sum+=n*(n-1)/2*(n-2)/3*(n-3)/4;
printf("%I64u\n",sum);
}
return 0;
}