java大数类

     2022-03-24     168

关键词:

碰到很多大数类的题目,听说JAVA比较流氓,赶紧去学习一波( <(?????)> )

 

大数相加:

 1 //JAVA 大数相加 
 2 import java.math.BigInteger;
 3 import java.util.*;
 4 import java.io.*;
 5 
 6 public class Main
 7 {
 8     public static void main(String args[])
 9     {
10         Scanner cin = new Scanner(System.in);
11             BigInteger a = cin.nextBigInteger();
12             BigInteger b = cin.nextBigInteger();
13             BigInteger ans = a.add(b);
14             System.out.println(ans);
15     }
16 }

 

大数相乘:

 1 //JAVA 大数相乘 
 2 import java.math.BigInteger;
 3 import java.util.*;
 4 import java.io.*;
 5 
 6 public class Main
 7 {
 8     public static void main(String args[])
 9     {
10         Scanner cin = new Scanner(System.in);
11             BigInteger a = cin.nextBigInteger();
12             BigInteger b = cin.nextBigInteger();
13             BigInteger ans = a.multiply(b);
14             System.out.println(ans);
15     }
16 }

 

大数相减:public BigInteger subtract(BigInteger val)

大数相除:public BigInteger divide(BigInteger val)

 

大数阶乘:

 1 //JAVA 大数阶乘 
 2 import java.io.*;
 3 import java.math.BigInteger;
 4 import java.util.*;
 5 
 6 public class Main
 7 {
 8     public static void main(String args[])
 9     {
10         Scanner cin = new Scanner(System.in);    
11         int n = cin.nextInt(); //输入int型 
12         BigInteger ans = BigInteger.ONE;
13         for(int i = 1; i <= n; i++)
14         ans = ans.multiply(BigInteger.valueOf(i));
15         System.out.println(ans);
16     }
17 }

 

大数比较大小

 1 //JAVA 大数比较大小 
 2 import java.io.*;
 3 import java.math.BigInteger;
 4 import java.util.*;
 5 
 6 public class Main
 7 {
 8     public static void main(String args[])
 9     {
10         Scanner cin = new Scanner(System.in);    
11         while(cin.hasNext())
12         {
13             BigInteger a = cin.nextBigInteger();
14             BigInteger b = cin.nextBigInteger();
15             if(a.equals(BigInteger.ZERO) && b.equals(BigInteger.ZERO)) break;
16             int flag = a.compareTo(b);
17             if(flag == -1)
18                 System.out.println("a<b");
19             else if(flag == 0)
20                 System.out.println("a==b");
21             else
22                 System.out.println("a>b");
23         }
24     }
25 }

 

高精度幂

 1 //JAVA 高精度幂 
 2 import java.io.*;
 3 import java.math.BigDecimal;
 4 import java.util.*;
 5 
 6 public class Main
 7 {
 8     public static void main(String args[])
 9     {
10         Scanner cin = new Scanner(System.in);    
11         while(cin.hasNext())
12         {
13             BigDecimal ans = cin.nextBigDecimal();
14             int n = cin.nextInt();
15             String res = ans.pow(n).stripTrailingZeros().toPlainString(); //整数去掉后面的0和小数点 
16             if(res.startsWith("0")) //去掉前导0 
17             {
18                 res = res.substring(1);
19             }
20             System.out.println(res);
21         }
22     }
23 }

//这里的BigDecimal相当于double,但是精度更高

java常用类scanner类和大数类(代码片段)

二、Scanner类有C系语言基础的可能都比较熟悉scanf("%d",&a);和cin>>a;这种代码,也打开了程序交互的第一道门。因此,这些程序员开始学Java时都会先找输入输出(指标准输入输出),Java的输出就非常常见,任何一个Java教程基本... 查看详情

java核心技术卷i中的细节(2-大数)

文章目录​​大数​​大数如果基本的证书和浮点数精度不能满足需求,那么可以使用​​java.math​​包中的两个类:BigInteger、BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现任意精度的整数运算,Big... 查看详情

java大数类—基础操作(加减乘除取模四舍五入设置保留位数)

当基础数据类型长度无法满足需求时可以使用大数类  构造方法接受字符串为参数1BigIntegerbInt=newBigInteger("123123");2BigDecimalbDouble=newBigDecimal("123123.123123124");          基础操作(取模使用divideAndRemainder方法,返回的... 查看详情

hdoj-acm1002(java实现自定义大数处理类mbiginteger)

转载声明:原文转自http://www.cnblogs.com/xiezie/p/5502809.htmlJAVA语言实现:importjava.util.*;importjava.io.*;publicclassMain{publicstaticvoidmain(String[]arg){Mainm=newMain();Scannerscan=newScanner(newBufferedInpu 查看详情

java实现字符串形式大数相加

思路还是比较清晰,用自定义类型保存输入的数据,逐位相加/相减,需要处理好借位及符号。总共两个类,一个自定义类型Int,一个AddUtil封装加法操作。附带测试类AddUtilTest。代码如下:Int.java:packagecn.areful;/***Createdbyareful,2020/... 查看详情

java如何创建一个类或方法能够给出指定位数的一个随机“大数”?

...ava如何创建一个类或方法能够给出指定位数的一个随机“大数”?例如bignumb(100000)可以给出一个100000位的数字,注意是100000位。可否结合BigInteger和Random?最好有具体代码,谢谢!一个大数一般都是使用数组存储的。比如使用b... 查看详情

java大数详细讲解

介绍java中用于操作大叔的类主要有俩种第一个是BigInteger,代表大整数。第二个是BigDecimal,代表大浮点数。两种类的操作方法类似,所以我们只讲解BigInterger的用法基本用法Scannerinput=newScanner(System.in);BigIntegera=input.nextBigInteger();Big... 查看详情

java大数类库初始化biginteger问题

...做什么修改,能够使得JAVA将数字以外的字符正确转化为大数类型?参考技术ABigInteger(byte[]val)将包含BigInteger的二进制补码表示形式的byte数组转换为BigInteger。BigInteger(intsignum,byte[]magnitude)将BigInteger的符号-数量表示形式转换为BigInte... 查看详情

小航的算法日记大数计算

...nteger​​​​2.2BigDecimal​​一、概念java.math.*包中提供了大数类,其理论上可以存储无限位的大数,只要内存足够的话。大数类又分为​​整数​​​和​​浮点数​​.即BigIntegerandBigDecimal不能直接进行运算,整数和浮点数不能... 查看详情

java之大数加减乘除——构建类

超级大的数做加减乘除java有八大数据类型:1、byte(位),最大存储数据量是255;2、short(短整数),最大数据存储量是65536;3、int(整数),最大数据存储容量是2的32次方减1;4、long(长整数),最大数据存储容量是2的64次方... 查看详情

大数运算和大数类(代码片段)

1、首先看一个小问题:整型数组、字符型数组、vector在未初始化的情况下:intmain() intdata[5]; charc[5]; vector<int>v(5); vector<char>v1(5); vector<int>v2; cout<<"int[]: "; for(inti=0;i 查看详情

[小工程]大数类(代码片段)

突然发现自己从来没有写过正儿八经的大数.于是在退役之前写一把.希望能在用到大数时替代掉慢死的Python.项目地址Github.com/Frankaiyou/LargeIntegarCompleted[x]Input;[x]Output;[x]Comparesize;[x]IntegarAddition;[x]Integarsubstruction;ToDoList[]Fixthememoryas 查看详情

链表实现大数类阶乘(代码片段)

链表实现大数阶乘题目大数运算——计算n的阶乘(n≥20)。基本要求(1)数据的表示和存储:①累积运算的中间结果和最终的计算结果的数据类型要求是整型——这是问题本身的要求。②试设计合适的存储结构,要求每个元素或... 查看详情

java中解决大数乘法和加法问题

前言????在日常的算法练习中难免会遇见涉及阶乘的计算的题目,总所周知阶乘的数据会变得非常大,此时int和long型都装不下只能借助于String来表示,所以这里特为大家提供两种解决方案:1、使用JavaAPI中的BigInteger类,该类中提... 查看详情

hdu1402a*bproblemplusfft+convert

HDU1402两个大数的乘法1.首先想到的用javaBiginter类可以直接求,确实,比赛的时候肯定用java写这种简单的大数类的题目。2.如果不用java的大数类,就会想到C++的bignumber模版,但是bignumber在进行乘法运算时也是... 查看详情

大数处理

   Java中在BigInteger类中封装了多种操作,除了基本的加、减、乘、除操作之外,还提供了绝对值、相反数、最大公约数以及判断是否为质数等操作。当使用BigInteger类时,可以实例化一个BigInteger对象,并自动调用相应... 查看详情

java基础学习之大数字处理相关的类有哪些?(代码片段)

...来模拟一个大整数或大浮点数。在Java中提供了两个用于大数字运算的类,分别是java.math.BigInteger类 和java.math.BigDecimal类。这两个类都可以用于高精度计算,BigInteger类是针对整型大数字的处理类,而BigDecimal类是针对大小数的... 查看详情

大数据项目13(python实现聚类算法)(代码片段)

Python实现聚类算法一、k-means聚类算法思想1.分步解析2.代码3.结果一、k-means聚类算法思想先随机选择k个聚类中心,把集合里的元素与最近的聚类中心聚为一类,得到一次聚类,再把每一个类的均值作为新的聚类中心重... 查看详情