1.题目
2.题目解析
通过分析,我们发现不会出现三条对角线交叉与一个点的情况,那么两条对角线需要用4个顶点,
那么这道算法题就成了从n个顶点中任选4个顶点的组合问题。
C(n,4)= n!/4!(n-4)!
=(n-4)!(n(n-1)(n-2)(n-3))/4!(n-4)!
=(n*(n-1)(n-2)(n-3))/24
3.算法实现
3.1 python
n = int(input())
print((n*(n-1)*(n-2)*(n-3))/24)
3.2 java
可能会溢出,所以使用BigInteger
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
static BigInteger n;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextBigInteger();
if(n.intValue()<=4) {
System.out.println(0);
}else {
System.out.println(n.multiply(n.subtract(BigInteger.valueOf(1)))
.multiply(n.subtract(BigInteger.valueOf(2)))
.multiply(n.subtract(BigInteger.valueOf(3)))
.divide(BigInteger.valueOf(24)));
}
sc.close();
}
}