Dili_iiii

编码全要靠底力

【数学】求n边型对角线交点个数

正n边型:

n%2==0

     n*(n-1)*(n-2)*(n-3)/24-tmp*(tmp-1)/2+1    (tmp=n/2)

n%2!=0

    n*(n-1)*(n-2)*(n-3)/24

 

非正n边型

    n*(n-1)*(n*n-5*n+6)/24

 

 

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1e6+5;
int t,n,a,b;
double num[100000];
int ans[100000];

int main()
{
    while(scanf("%d",&n)!=EOF)
    {
        if(n==3)
            printf("0\n");
        else if(n==4)
            printf("1\n");
        else
        {
            printf("%d\n",n*(n-1)*(n*n-5*n+6)/24);
            if(n%2==0)
            {
                int tmp=n/2;
                //printf("%d\n",n*(n-1)*(n-2)*(n-3)/24-tmp*(tmp-1)/2+1);
            }
            else
            {
                //printf("%d\n",n*(n-1)*(n-2)*(n-3)/24);
            }
        }
    }
    return 0;
}

 

posted @ 2018-10-19 20:16  Dili_iiii  阅读(2163)  评论(0编辑  收藏  举报