用Java中的高精度的一点小总结

本文介绍了在Java中使用高精度处理时的一些效率提升技巧,特别是通过特定的流对象包装来优化读取文本操作。利用DataInputStream的readLine()方法,能够有效地读入一行文本直至遇到换行符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Scanner cin = new Scanner(new BufferedReader(
				new InputStreamReader(System.in)));  //创建流对象


在创建流对象的是时候,有点技巧,进行了这样多包装,目的只有一个,那就是提高效率!

如果是想入读一行文本的话,可以这样进行包装:

DataInputStream cin = new DataInputStream(new BufferedInputStream(System.in));


这是因为在DataInputStream类中有readLine()方法,该方法的作用就是读入一行文本!直到遇到换行的时候结束!

BigDecimal num = cin.nextBigDecimal();                //这样可以输入一个高精度的数字!
BigDecimal.ONE.negate();                             //返回 -this 比如当前对象是8 那么调用negate()方法的结果就是返回-8对象
for (BigDecimal i = BigDecimal.ONE; i.compareTo(a) == -1; i = i
     .add(BigDecimal.ONE)) {}                      //对于高精度的for循环可以这样写
BigInteger p = cin.nextBigInteger(b);             // 从键盘上输入一个b进制的数就可以这样做到
p.mod(m).toString(b);                            //两个b进制的数做mod运算还得到b进制的结果
Integer.parseInt(String.valueOf(a.charAt(i)));  //提供了一种将一个数字字符串中相应位置的字符转换成整数包装类的对象的方法
BigInteger.valueOf(a2);                        //如果a2是int基本类型,那么这行代码就能将其包装成BigInteger类型 这样包装只是为了运算方便
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值