P2181 对角线

对于一个 nn 个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。
输入格式
输入只有一行一个整数 nn,代表边数。

输出格式
输出一行一个整数代表答案。

输入输出样例
输入 #1复制
3
输出 #1复制
0
输入 #2复制
6
输出 #2复制
15

import java.math.BigInteger;
import java.util.*;
/*
数学推导,当顶点小于4时不可能有交点,当顶点等于四时有且只有一个,那么
当顶点大于四时我们可以进行将顶点进行组合,运用Cn来组合查看有多少种可能!
*/
public class Main{
    public static void main(String [] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        //基本数据类型的范围无法接受所有数据,所以这里要使用无穷大的两个类BigInteger(整型)和BigDecimal(浮点型)
        BigInteger bd1 = new BigInteger(String.valueOf(n));
        BigInteger bd2 = new BigInteger(String.valueOf(n-1));
        BigInteger bd3 = new BigInteger(String.valueOf(n-2));
        BigInteger bd4 = new BigInteger(String.valueOf(n-3));
        BigInteger bd5 = new BigInteger("24");

        bd1 = bd1.multiply(bd2);
        bd1 = bd1.multiply(bd3);
        bd1 = bd1.multiply(bd4);
        if(n<=3)
            System.out.println(0);
        else {
            bd1 = bd1.divide(bd5);
            System.out.println(bd1);
        }
    }
}

你可能感兴趣的:(java,java)