ACM中用Java水高精度需要注意的2个地方

本文探讨了在Java中使用BigDecimal和BigInteger进行高精度运算的优势,针对格式化输出和小数点处理问题提供了解决方案,同时推荐了学习Java语法的资源。此外,文章还介绍了如何使用Java进行高效的空间管理和广告盈利。

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

java中的 bigdecimal 和 biginteger 实在是太好用了,比起自己死活用c++敲高精度好得多。

但是一般来说遇到,acmer会遇到2个问题:

格式化输出问题。

网上一大堆介绍用 numformat 和 decimalformat 格式化输出的文章,但是用那2个类格式化输出,谈何容易。所以对于用开 c/c++ 的 acmer 来说,用java中的 sprintf 吧。

代码:

system.out.printf("%4d", i);

小数点输出问题。话说这个用c++解决也不是一件简单问题,对于 biginteger or bigdecimal ,一般是转化为 string,再转化为 char[] 进行处理。使用的方法是:

biginteger sum = new biginteger("0");

char[] temp = sum.tostring().tochararray();

其实,bigdecimal 里面还有一个函数 toplainstring() ,转化而成的 string 就是用普通计数法的,不会考虑用科学计数法的。所以对于 bigdecimal 的转化用:

bigdecimal obj = new bigdecimal("0.00000001");

char[] out = obj.toplainstring().tochararray();

用java水高精度,肯定要学一点点java的语法的。虽然eclipse的语法纠正很智能,那个“.”后面弹出来的函数选择框也非常的爽,不过一点点的java基本语法还是需要的。所以推荐一篇文章:

http://www.cnblogs.com/bless/archive/2008/11/25/1341003.html

java作为编程语言里面最多人用的语言之一,我觉得,还是应该认真学习下才好。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值