JAVA大数

出处 https://blog.csdn.net/DongChengRong/article/details/78848399

 

引论

在算法竞赛中我们经常遇到大数问题,例如求一个很大的斐波那契数。住在这种情况下我们用常规解法(使用long long或long long int)肯定是不行的,而我们自己写一个大数的算法又过于麻烦且易于出错,在这种情况下使用java中自带的大数类是我们最好的选择 介绍 java中用于操作大数的类主要有两个,一个是BigInteger,代表大整数类用于对大整数进行操作,另一个是BigDecimal,代表高精度类,用于对比较大或精度比较高的浮点型数据进行操作。因为这两种类的使用方法是一样的,所以下面我们以BigInteger为例进行讲解

基本用法

1、新建一个值为123的大整数对象 BigInteger a=new BigInteger(“123”); //第一种,参数是字符串 BigInteger a=BigInteger.valueOf(123); //第二种,参数可以是int、long

2、大整数的四则运算 a. add(b); //a,b均为BigInteger类型,加法 a.subtract(b); //减 法 a.divide(b); //除法 a.multiply(b); //乘法

3、大整数比较大小 a.equals(b); //如果a、b相等返回true否则返回false a.comareTo(); //a小于b返回-1,等于返回0,大于返回1

4、常用方法 a.mod(b); //求余 a.gcd(b); //求最大公约数 a.max(b); //求最大值 a.min(b); //求最小值

5、BigInteger中的常数 BigInteger.ZERO //大整数0 BigInteger.ONE //大整数1 BigInteger.TEN //大整数10

输入框架

Scanner cin = new Scanner(System.in); //读入

while(cin.hasNext())

{ //等同于!=EOF BigInteger a; a = cin.BigInteger(); //读入一个BigInteger;

System.out.println(a); //输出a并换行 }

注意 使用java大数类解决问题时我们需要注意两个方面 1、不能有包名,也就是说我们要把主类放到默认的包里,如果你的代码里出现形如package cn.gov.test;这样的代码你很有可能会收获到RE 2、提交的类的类名必须为Main,如果是其他的名字你有可能收获到CE也有可能收获到WA(例如UVA) 

全部评论

相关推荐

身边的人都在收获,我却还在原地踏步,到底该怎么办啊!每次看到他们的好消息,我都想放弃,心里不停地问自己:到底该怎么才能找到一份工作呢?这种无力感让我想要彻底摆烂,真的很想知道,别人是怎么做到的。有没有人分享一下经历呢?我想学习一下啊走出这样的日子。
鼗:秋招其实是运气>实力的一场竞技游戏,除非实力很强(学历和技术)。大多数人都是半斤八两,看面试官和HR以及简历被曝光的概率罢了,有些时候你可能运气差一点或者说面试官不太友好也或者说你确实准备的不够好之类的,这些都是可能发生的事情。我觉得能做的事情是不比较、不气馁、在面试前多看一点面试的时间冷静一点自信一点,大大方方面试,给自己多一点时间去求职。我这样说不是站着说话不腰疼,我是想说你的offer还在路上,你也值得在这些困难之后得到你较为理想的offer,请你继续加油,保持乐观,积极打败你现在的困难
点赞 评论 收藏
分享
10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务