一、前言

数学和大数类都是我们刷题比较常用的类,在笔试的时候两个类都可以用,但是在面试的时候尽量不要用大数类,因为大数类是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;除

刷题常用之大数类、数学类相关推荐

  1. Python 刷题常用语法与数据结构汇总-2022.01.30

    [笔试]python刷题笔记(基础)! https://blog.csdn.net/a_123456598/article/details/105420802 python语法刷题 https://b ...

  2. 刷题常用模板 by flytosky2015

    声明模板: #include <iostream> #include <cstdio> #include <cstdlib> #include <cmath& ...

  3. 力扣刷题常用数据结构和方法(java版本)

    1.基本数据结构: 数组(特别是二维数组,刚开始搞不清楚如何获取行和列,以及初始化): //静态初始化 int[] intArr = new int[]{1,2,3,4,5,6}; //简化版 int ...

  4. 刷题常用算法模板(持续更新)

    目录 1.二分查找 2.线段树 3.树状数组 4.差分数组 5.前缀树 6.并查集 7.AC自动机 8.Morris遍历 9.二叉树非递归遍历 10.KMP 11.Manacher 12.快速选择 b ...

  5. python刷题 NOI题库 python题解 洛谷、牛客网、AcWing 刷题等

    NOI题库 python题解-2022.01.07整理(1.1-1.3) NOI题库 python题解-2022.01.07整理(1.1-1.3)_dllglvzhenfeng的博客-CSDN博客 N ...

  6. C#LeetCode刷题-多线程

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-多线程 | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode多线程类算法题汇总. ...

  7. 算法题常用技巧C++

    刷题常用技巧C++ 常用头文件 #include <iostream> #include <cstdio> #include <fstream> #include ...

  8. 洛古 P1926 小书童——刷题大军

    P1926.小书童--刷题大军 题目 题目背景 数学是火,点亮物理的灯:物理是灯,照亮化学的路:化学是路,通向生物的坑:生物是坑,埋葬学理的人. 文言是火,点亮历史宫灯:历史是灯,照亮社会之路:社会是 ...

  9. DSt:数据结构的最强学习路线之数据结构知识讲解与刷题平台、刷题集合、问题为导向的十大类刷题算法(数组和字符串、栈和队列、二叉树、堆实现、图、哈希表、排序和搜索、动态规划/回溯法/递归/贪心/分治)总

    DSt:数据结构的最强学习路线之数据结构知识讲解与刷题平台.刷题集合.问题为导向的十大类刷题算法(数组和字符串.栈和队列.二叉树.堆实现.图.哈希表.排序和搜索.动态规划/回溯法/递归/贪心/分治)总 ...

最新文章

  1. 行业新风向!AI人才缺口30万,单个项目最高补贴1000万元!
  2. 如何选择漏电保护器规格型号_施工现场三级电箱如何配置?图示详解,清晰明了!...
  3. 30_visdom可视化、TensorboardX及其案例、安装visdom、使用visdom的案例
  4. HTTP请求方法对照表(15种全部解释)
  5. vue中 使用md5加密
  6. 【POJ - 2594】Treasure Exploration(floyd传递闭包 + 最小路径覆盖,图论)
  7. 【Python】字符串反转
  8. 有关上次的字符串是否相等的比较
  9. opencv 一种灰度图像增强方式
  10. python 课堂笔记 420_一位初学Python同学的课堂笔记,仿佛看到当年的自己
  11. mysql中profile的使用
  12. 获取汉字的拼音简码方法(仅适用于国标一级汉字)
  13. JavaScript实现图片瀑布流
  14. 38、Power Query-背后的贤内助M语言
  15. 搭档之家:牛市来了!阿里云“临牛受命”,接到多家券商扩容需求
  16. 一种更简单的求最小平方均值函数(MSE)的方法 -- 梯度下降法。
  17. kubelet源码分析(三)之 startKubelet
  18. 09-赵志勇机器学习-k-means
  19. 我大抵是病了,横竖都睡不着。
  20. 业内首档程序员真人秀?这不比博人传热血???

热门文章

  1. Raymarching(光线步进)基础
  2. 目前UI就业薪资怎么样 想高薪要掌握哪些技能
  3. mysql预编译表名_slq预编译与mybatis
  4. 周六(6月7日)博客园沈阳.NET俱乐部线下聚会
  5. Potplayer+LAVFilters+madVR配置
  6. python每个大学生都要学吗_大学生必须学Python吗?
  7. 风力发电系统全国产化电子元件推荐方案
  8. Linux—账号管理及命令使用详解
  9. 953 验证外星语词典
  10. fabric 启动peer_Hyperledger fabric peer数据膨胀解决方案探讨