Java实现P2181 对角线

25 篇文章 3 订阅

一周半前开始帮老师写东西,到今早一点才完成,还只是初稿,拖欠不少作业,博客也鸽了,先补一篇。

在这里插入图片描述
在这里插入图片描述

import java.io.IOException;
import java.math.BigInteger;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws IOException{
		Scanner sc=new Scanner(System.in);
		String n=sc.next();
		BigInteger a,b,c,d,e,f,g,h;
		a=new BigInteger(n);
		b=new BigInteger("1");
		c=a.subtract(b);//n-1
		d=c.subtract(b);//n-2
		e=d.subtract(b);//n-3
		f=e.multiply(d).multiply(c).multiply(b).multiply(a);//n(n-1)(n-2)(n-3)
		g=new BigInteger("24");
		h=f.divide(g);
		System.out.println(h);
	}
}

思路:两条对角线确定一个交点,四个顶点确定两条相交的对角线,所以就是无顺序的从顶点中取四个顶点,也就是组合数C下面写个n,上面写个4。
由于n<=10^5,因此需要BigInteger类。
BigInteger类:
在这里插入图片描述
在这里插入图片描述
注意输入时用string类接收。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值