高精度 java_JAVA高精度模板

刚开始还坚持用C++写高精来着,后来发现JAVA写高精方便太多了,所以也来学习一下JAVA高精度的模板。

参考:https://www.cnblogs.com/imzscilovecode/p/8833230.html

https://blog.csdn.net/qq_41428565/article/details/80211938

1. valueOf(parament); 将参数转换为制定的类型

比如 int a=3;

BigInteger b=BigInteger.valueOf(a);

则b=3;

String s=”12345”;

BigInteger c=BigInteger.valueOf(s);

则c=12345;

2. BigInteger构造函数:

一般用到以下两种:

BigInteger(String val);

将指定字符串转换为十进制表示形式;

BigInteger(String val,int radix);

将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger

3. 基本常量:

A=BigInteger.ONE 1

B=BigInteger.TEN 10

C=BigInteger.ZERO 0

import java.util.*;

import java.math.*;public classMain {public static voidmain(String []args) {

Scanner sc=new Scanner(System.in);

BigInteger a=sc.nextBigInteger();

BigInteger b=sc.nextBigInteger();int n=sc.nextInt();BigDecimal d=sc.nextBigDecimal();

BigInteger e=sc.nextBigInteger();

String str=sc.nextLine();/*//d为int型,a,b,c都为大数

c=a.add(b); // 相加

c=a.subtract(b); // 相减

c=a.multiply(b); // 相乘

c=a.divide(b); // 相除取整

c=a.gcd(b); // 最大公约数

c=a.remainder(b); // 取余

c=a.mod(b); // a mod b

c=a.abs(); // a的绝对值

c=a.negate(); // a的相反数

c=a.pow(d); // a的b次幂 d为int型

c=a.max(b); // 取a,b中较大的

c=a.min(b); // 取a,b中较小的

d=a.compareTo(b); // 比较a与b的大小 d=-1小于 d=0等于 d=1大于 d为int型

a.equals(b); // 判断a与b是否相等 相等返回true 不相等返回false*/

//加减乘除add,subtract,multiply,divide

System.out.println(a.add(b));

System.out.println(a.subtract(b));

System.out.println(a.multiply(b));

System.out.println(a.divide(b));//阶乘//注意BigInteger.valueOf()的使用

for(int i=1;i<=n;i++) {

c=c.multiply(BigInteger.valueOf(i));

}

System.out.println(c);//比较大小

int flag=a.compareTo(b);if(flag==-1) {

System.out.println("a

}else if(flag==0) {

System.out.println("a=b");

}else{

System.out.println("a>b");

}//大数的进制转换//先将字符串转化为10进制大数,然后将大数转化为2进制字符串

e=new BigInteger(str,10);

String tmp=e.toString(2);/*d=a.intValue(); // 将大数a转换为 int 类型赋值给 d

e=a.longValue(); // 将大数a转换为 long 类型赋值给 e

f=a.floatValue(); // 将大数a转换为 float 类型赋值给 f

g=a.doubleValue(); // 将大数a转换为 double 类型赋值给 g

s=a.toString(); // 将大数a转换为 String 类型赋值给 s

a=BigInteger.valueOf(e); // 将 e 以大数形式赋值给大数 a e只能为long或int*/sc.close();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值