POJ高精度练习

这篇博客分享了作者在POJ平台上练习高精度计算题目的经历,强调了Java实现的简便性。作者通过POJ1001、POJ1131和POJ2635三道题目,讲解了处理细节和逻辑的重要性,并提到了BigDecimal的stripTrailingZeros()方法在去除多余零上的应用。此外,还解析了一道涉及八进制计算的题目和一个关于素数因子的题目,总结了高精度题目在ACM竞赛中的常见处理方式。
摘要由CSDN通过智能技术生成

在POJ上找了几道高精度的题目来练手,不得不说,高精度的题,用java来实现真的非常简单暴力,直接算就行,没有很强的逻辑~

POJ1001

这道题目的意思呢,是给你一个实数R和一个整数n,然后求R的n次方,原本这道题目是很简单的,主要有一点麻烦的就是细节的处理上,不过好在测试用例都给了,应该注意的点。eg,第二个测试用例如果答案是0.00000xxxxxxx,那么要输出.00000xxxxxxx,这样的格式,还有最后一个测试用例,对于结果后面有一堆0的,要去掉后面这些0.

不过有点遗憾的是,自己写了一个for循环遍历,从后向前找第一个不为0的数,然后结果值就等于他从0到这个不为0的数的下标,但是今天看BigDecimal的时候突然发现了,人家自带一个去除末尾的0的方法,呜呜呜API万岁! 这个伟大的方法就是stripTrailingZeros()

这是不用stripTrailingZeros()方法的

这是用方法做的

 以上可知,用好方法真的很重要啊!!!

POJ1131

 这个题目呢,读懂题目也是非常简单的,但是我刚开始没读懂,

感觉他给的这句话也很奇怪,但是经过我认真研读了两遍之后发现她给的7/8正是0.75小数点后的一位,5/64正是小数点后的第二位,而8和64,分别是8的1次方和8的2次方,所以现在就很清楚了,让我们求给的八进制的小数点后的第几位除以8的几次方,然后将和相加。

也没有什么需要注意的问题,代码逻辑很简单。

POJ2635

 最后一个素数的问题,这个题目呢,是给定一个素数K和一个整数L,他是由两个素数相乘得到的,如果他的两个素数因子都大于L,那么输出“GOOD”,若有一个素数因子小于L,则输出“BAD p”,p是最小的素数因子。

思路是这个借鉴的是某位大佬的先打表,一个数是不是素数,先给他标记出来,遍历的时候直接用就可以了~

   总体来说呢,高精度的题目在省ACM中呢,算是签到题,然后我们做的时候注意好细节就可以了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值