刷题常用之大数类数学类
Posted !0 !
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刷题常用之大数类数学类相关的知识,希望对你有一定的参考价值。
一、前言
数学和大数类都是我们刷题比较常用的类,在笔试的时候两个类都可以用,但是在面试的时候尽量不要用大数类,因为大数类是java语言特有的(虽然有很多语言也有大数,但是不是所有语言都有大数,比如c++),所以面试的时候面试官考大数是为了考你逻辑,而不是考你java大数类用得怎么样。接下来我们就来介绍一下常用的方法,
二、数学类
一般我们会用到前六点,后面的了解即可。
1、两个属性
System.out.println(Math.E);//2.718281828459045;常数e
System.out.println(Math.PI);//3.141592653589793;圆周率
2、Math.max 求两数中最大 *
3、Math.min 求两数中最小 *
4、Math.sqrt 求开方 *
5、Math.pow 求某数的任意次方*
6、Math.abs 求绝对值 *
7、Math.sin 正弦函数 Math.asin 反正弦函数
8、Math.cos 余弦函数 Math.acos 反余弦函数
9、Math.tan 正切函数 Math.atan 反正切函数 Math.atan2 商的反正切函数
10、Math.toDegrees 弧度转化为角度 Math.toRadians 角度转化为弧度
11、Math.ceil 得到不小于某数的最大整数
12、Math.floor 得到不大于某数的最大整数
13、Math.exp 求e的任意次方
14、Math.log10 以10为底的对数
15、Math.log 自然对数
16、Math.rint 求距离某数最近的整数(可能比某数大,也可能比它小)
17、Math.round 同上,返回int型或者long型(上一个函数返回double型)
18、Math.random 返回0,1之间的一个随机数
三、大数类
当我们的long类型存不下数据时,可以使用两种解决方法,第一种是使用String类型保持,这也是做题时常用的方法;第二种是使用java的API大数类,大数类分为整数类和浮点数类,接下来我将把这些类常用的方法都举例说明一下。(大数类是在java.math包下)
- BigInteger(整数)
1、构造器
BigInteger a = new BigInteger("2000000000"); //大数构造器里面要为String类型
BigInteger b = new BigInteger("1000000000");
2、大数相加:public BigInteger add(BigInteger val)
System.out.println(a.add(b)); //3000000000;大数相加
3、大数相减:public BigInteger subtract(BigInteger val)
System.out.println(a.subtract(b)); //1000000000;大数相减
4、大数相乘:public BigInteger multiply(BigInteger val)
System.out.println(a.multiply(b)); //2000000000000000000;大数相乘
5、大数相除:public BigInteger divide(BigInteger val)
System.out.println(a.divide(b)); //2大数相除
6、大数相除(返回商和余数):public BigInteger[] divideAndRemainder(BigInteger val)
System.out.println(a.divideAndRemainder(b)[0] + " " + a.divideAndRemainder(b)[1]);
//2 0;返回一个大小为2的数组,第一个元素为商,第二个元素为余数
7、大数中较大(较小)的数
System.out.println(a.max(b)); //2000000000;返回两个大数中较大的那个数
System.out.println(a.min(b)); //1000000000;返回两个大数中较小的那个数
8、 最大公约数:BigInteger gcd(BigInteger value)
BigInteger a = new BigInteger("3");
BigInteger b = new BigInteger("6");
System.out.println(a.gcd(b));//3;
- BigDecimal(浮点数)
BigDecimal b = new BigDecimal("246.246");
BigDecimal c = new BigDecimal("123.123");
System.out.println(b.add(c)); //369.369;加
System.out.println(b.subtract(c));//123.123;减
System.out.println(b.multiply(c));//30318.546258;乘
System.out.println(b.divide(c));//2;除
以上是关于刷题常用之大数类数学类的主要内容,如果未能解决你的问题,请参考以下文章