java 大数详细讲解
Posted Tonyyy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 大数详细讲解相关的知识,希望对你有一定的参考价值。
介绍
java中用于操作大叔的类主要有俩种 第一个是BigInteger,代表大整数。第二个是BigDecimal,代表大浮点数。两种类的操作方法类似,所以我们只讲解BigInterger的用法
基本用法
Scanner input = new Scanner(System.in);
BigInteger a = input.nextBigInteger();
BigInteger b = input.nextBigInteger();
1.更改为大数数据类型
String s = "12345678987654321"
BigInteger a = new BigInteger(s);
int a =123456;
BigInteger a = BigInteger.valueOf(a);
String s = "12345678987654321";
BigInteger a =BigInteger.valueOf(s,10);//将字符串转换成10进制的大数
2.大整数的四则运算(都不改变a b的值)
a.add(b) //求a+b 加法
a.subtract(b) //求a-b 减法
a.divide(b) //求a/b 除法
a.multiply(b) //求a*b 乘法
3.大整数比较大小
a.equals(b); //如果a b相等 返回true 否则返回false
if(a.equals(a.max(b))) //如果a等于a和b中的较大者 即a>b 否则a<b
4.常用方法
a.mod(b) //求余数即a%b
a.gcd(b) //求最大公约数
a.max(b) //求最大值
a.min(b) //求最小值
a.pow(b) //求a^b的大数
5.求大数的长度
a.toString().length();
例题
1.a+b
import java.util.*; import java.math.BigInteger; public class Main{ public static void main(String[] args) { Scanner input = new Scanner(System.in); BigInteger a,b; BigDecimal c,d; while(input.hasNext()) { //整数的大整数求和 a = input.nextBigInteger(); b = input.nextBigInteger(); System.out.println(a.add(b)); //小数的大整数求和 c = input.nextBigDecimal(); d = input.nextBigDecimal(); System.out.println(c.add(d)); } } }
2.大整数阶乘(一个模板)
import java.util.*; import java.math.BigInteger; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner input = new Scanner(System.in); BigInteger []f = new BigInteger[5000]; f[0] = f[1] = BigInteger.ONE; for(int i=2;i<=10000;i++) { f[i] = f[i-1].multiply(BigInteger.valueOf(i)); } while(input.hasNext()) { int m = input.nextInt(); System.out.println(f[m]); } } }
3.Fibonacci数
import java.util.*; import java.math.BigInteger; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner input = new Scanner(System.in); BigInteger []f = new BigInteger[5010]; f[0] = f[1] = BigInteger.ONE; for(int i=2;i<=5000;i++) { f[i] = f[i-1].add(f[i-2]); } while(input.hasNext()) { int m = input.nextInt(); System.out.println(f[m]); } } }
以上是关于java 大数详细讲解的主要内容,如果未能解决你的问题,请参考以下文章