首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

每日一道算法_求高精度幂

2013-10-02 
每天一道算法_求高精度幂今天这个可能有点偷懒,学c的时候就知道大数计算很复杂,现在一直用java,有幸有大数

每天一道算法_求高精度幂

今天这个可能有点偷懒,学c++的时候就知道大数计算很复杂,现在一直用java,有幸有大数的方法可以用

那么今天的算法就用java偷懒过去吧

import java.math.BigDecimal;import java.util.Scanner;public class TheBigNumber {public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNext()) {try {Double r = in.nextDouble();Integer n = in.nextInt();BigDecimal re = new BigDecimal(r.toString());String res = re.pow(n).stripTrailingZeros().toPlainString();if (res.startsWith("0"))res = res.substring(1, res.length());System.out.println(res);} catch (Exception e) {}}}}

作者:jason0539

微博:http://weibo.com/2553717707

博客:http://blog.csdn.net/jason0539(转载请说明出处)

1楼qq245282209昨天 20:54
BigDecimal re = new BigDecimal(r.toString()); n String res = re.pow(n).stripTrailingZeros().toPlainString(); nnn这两句是什么意思??关键是那个Bigdecimal类,n还有这几个方法。pow(),stripTrailingZeros(),toPlainString(), n不太懂
Re: jason0539昨天 23:00
回复qq245282209nBigdecimal类就是专门对付这种大数的类,方法的话,pow()就是求多少次方的,stripTrailingZeros()是去掉结果多余的0,toPlainString()也是格式化的一种,好像是去掉指数之类的

热点排行