题目描述:
对于一个 nn 个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。
例如,66 边形:
输入格式:
输入只有一行一个整数n,代表边数。
输出格式:
输出一行一个格式代表答案。
思路:对于对角线问题,题目说明了三条对角线不会交于一点,所以问题转变成了选取两条对角线的交点有多少个,两条对角线的交点占据了四个顶点,所以在n边形里面选取4个不同的顶点成了这道题的解法。(新手小白学习的大佬思路)
在数学里面这道题的公式为:n(n-1)(n-2)(n-1)/24;
注意:如果直接使用公式可能会爆掉,可以化简一下变成n(n-1)/2*(n-3)/3*(n-2)/4;这个公式不会导致数据不准
附上代码:
#include<stdio.h>
main()
{
unsigned long long n,num;
scanf("%lld",&n);
num=(n*(n-1)/2*(n-2)/3*(n-3)/4);
printf("%lld",num);
}
这里注意n,num申请的时候用long long ,不然可能只会部分AC,题目有说明n的数据区间