/**
组合数学
每两个顶点连一条对角线
每两条对角线有一个顶点
所以每一个交点对应四个顶点
就是组合数c(n,4)
c(n,4) = n!/4!*(n-4)! = n*(n-1)*(n-2)*(n-3)/4!
答案可能会爆long long
所以可以把公式化成这样
n*(n-1)/2*(n-2)/3*(n-3)/4
因为n和n-1一定有一个是2的倍数,所以2可以除尽
同理n、n-1、n-2中一定有一个是3的倍数,所以3也可以除尽
同理4也可以除尽
**/
ull n,ans;
/**
注意是unsigned long long
unsigned long long 的范围比long long要大一倍
它把long long 在负数范围的数放到了正数范围
**/
int main()
{
cin >> n;
ans = n*(n-1)/2*(n-2)/3*(n-3)/4;
printf("%lld\n",ans);
return 0;
}
洛谷P2181 对角线#组合数学
猜你喜欢
转载自blog.csdn.net/magic_wenge/article/details/105141899
今日推荐
周排行