【概述】

在 C++ 中数据类型的长度最多能到 64 位,一旦超出这个位数,就要用数组进行模拟计算,即高精度算法

而在 Java 中有两个类:BigInteger、BigDecimal 分别表示大整数类和大浮点数类,其理论上能表示无限大的数,只要计算机内存足够大。

这两个类都是 Number 类的子类,但存放在 java.math.* 包中,因此每次使用必须在开头处引用该包。

【常量】

BigInteger 的 ONE、ZERO、TEN 分别代表 1、0、10

BigInteger.ZERO //大整数0
BigInteger.ONE //大整数1
BigInteger.TEN //大整数10

而在 BigDecimal 中除了以上三个常量外还有8个关于舍入的常量:ROUND_UP、ROUND_DOWN、ROUND_CEILING、ROUND_FLOOR、ROUND_HALF_UP、ROUND_HALF_DOWN、ROUND_HALF_EVEN、ROUND_UNNECESSARY。

【声明赋值】

基本类型的定义:

BigInteger name = new BigInteger(String) ;//参数是字符串
BigInteger name = BigInteger.valueOf(123); //参数是 int、long
BigDecimal name = new BigDecimal(String) ;//参数是字符串
BigDecimal name = BigDecimal.valueOf(123.45); //参数是 float、double

【输入框架】

Scanner input = new Scanner(System.in);
while(input.hasNext()){ BigInteger a;a = input.BigInteger();System.out.println(a);
}

【基本用法】

1.四则运算

BigInteger a = new BigInteger.valueOf(10);
BigInteger b = new BigInteger.valueOf(10);
BigInteger res new BigInteger();
res=a.add(b);         //加法
res=a.subtract(b);    //减法
res=a.divide(b);      //除法
res=a.multiply(b);    //乘法

2.比较大小

BigInteger a = new BigInteger.valueOf(10);
BigInteger b = new BigInteger.valueOf(10);
a.equals(b);      //如果a、b相等返回true否则返回false
a.comareTo(b);    //a小于b返回-1,等于返回0,大于返回1

3.常用方法

BigInteger a = new BigInteger.valueOf(10);
BigInteger b = new BigInteger.valueOf(15);
BigInteger mod = new BigInteger.valueOf(10007);
BigInteger res=new BigInteger();
res=a.mod(mod);       //求余
res=a.gcd(b);         //求最大公约数
res=a.max(b);         //求最大值
res=a.min(b);         //求最小值
res=a.modPow(b,mod);  //求(a^b)%mod

基础算法 —— 高精度计算 —— Java 大数类相关推荐

  1. 基础算法 —— 高精度计算

    [概述] 利用计算机进行数值计算,有时会遇到这样的问题:有些计算要求精度高,希望计算的尾数可达到几十甚至几百位,虽然计算机本身精度足够高,但受硬件限制,往往达不到实际问题所要求的精度,因此我们用程序设 ...

  2. java大数类阶乘_Java中的大数阶乘

    java大数类阶乘 It is not possible to store factorial for large number like 50 into inbuilt data types lik ...

  3. Java 大数类BigInteger与BigDecimal详细介绍(配蓝桥杯例题讲解)

    文章目录 1.基本函数 1.1 java.math.BigInteger.valueOf(long val) 2.运算法则 2.1 基本运算 2.2 compareTo(BigInteger othe ...

  4. java 大数类_Java大数类介绍

    java能处理大数的类有两个高精度大整数BigInteger和高精度浮点数BigDecimal,这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.B ...

  5. (部分转载,部分原创)java大数类(2)

    NYOJ 773  开方数 http://acm.nyist.net/JudgeOnline/problem.php?pid=773 1 import java.util.Scanner; 2 3 p ...

  6. Java程序设计语言基础05:Java的类和对象

    目录 1. 类的定义与组成 1.1 类的定义 2.2 类的使用 2. 类.对象和引用 2.1 类 2.2 对象 2.3 引用 3. 类的知识扩展 3.1 成员变量初始值 3.2 在类中定义自己的引用 ...

  7. 多校第六场 HDU 4927 JAVA大数类+模拟

    HDU 4927 题目大意:给定一个长度为n的序列a,每次生成一个新的序列,长度为n-1,新序列b中bi=ai+1−ai,直到序列长度为1.输出最后的数. 思路:这题实在是太晕了,比赛的时候搞了四个小 ...

  8. 基础算法 —— 高精度计算 —— 高精度加法

    [算法分析] 输入两个数到两个变量中,然后用赋值语句求他们的和,输出. 但是,我们知道,在C++中任何数据类型都有一定表示范围.当两个被加数很大时,上述算法显然不能求出精确解,因此寻求另外一种方法. ...

  9. 智力大奖赛 【数较大 】+水题+java大数类

    输入 只有一行,有一个整数N,表示大三角形的层数(N<=45000) 输出 有两行, 第一行只有一个数,表示小三角形的个数: 第二行也只有一个数,表示能量棒的个数. 分析:会等差数列的前n项和公 ...

最新文章

  1. 淘宝装修:第一日 —— 图片轮播
  2. spring源码深度解析—Spring的整体架构和环境搭建
  3. 【渝粤教育】电大中专建设工程法规 (2)作业 题库
  4. sp烘焙流程_次世代86机甲战神制作全流程
  5. [css] 如何消除transition闪屏?
  6. koa2 mysql增删改查_koa2对mongodb的增删改查
  7. oracle imp导入库到指定表空间
  8. 如何使用scss/sass
  9. 从研发角度谈存储技术的学习
  10. Linux 下 4 种实时监控日志文件的方法,你都会用吗?
  11. paip.提升用户体验---c++ QLabel标签以及QLineEdit文本框控件透明 设置
  12. excel去掉一行文字中的逗号合并在一起_这30个Excel实用技巧,效率大神都忍不住收藏了。...
  13. Task02:学习笔记文本预处理;语言模型;循环神经网络基础
  14. Django开源项目
  15. 1660_MIT 6.828 JOS初始化boot_alloc的初步实现
  16. 【疫情是否会对2021届就业形势产生影响】听说连21届都要跟20届毕业生“抢饭碗”了?
  17. YUV图像格式进行的ALPHA BLEND操作
  18. 对于网站设计和开发公司日益增长的需求
  19. 正点原子【STM32-F407探索者】--UART_Printf
  20. UTONMOS:如何看待初期的元宇宙?

热门文章

  1. HTML鼠标点击文字语音播放,10款jQuery+HTML5实现的鼠标点 经过播放音频
  2. 7805输入电流有要求吗_【电磁炉技术】电磁炉常用元器件的使用要求和维修事项...
  3. 大厂面试:一个四年多经验程序员的BAT面经
  4. 再现暴力裁员!患病员工被关小黑屋,摄像头监控,工作量超其他人!
  5. 我要带徒弟学写JAVA架构,引路架构师之路
  6. JEECG 命名规范
  7. RedHat系列软件管理(第二版) --源码包安装
  8. 【C#学习笔记】函数调用
  9. 关于CSS的碎片学习
  10. Apple Cached Service 导致 iPhone app store无法下载程序