求高精度幂
Time Limit: 500MS   Memory Limit: 10000K
Total Submissions: 168611   Accepted: 40827

Description

对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。

现在要你解决的问题是:对一个实数R( 0.0 < R < 99.999 ),要求写程序精确计算 R 的 n 次方(R n),其中n 是整数并且 0 < n <= 25。

Input

T输入包括多组 R 和 n。 R 的值占第 1 到第 6 列,n 的值占第 8 和第 9 列。

Output

对于每组输入,要求输出一行,该行包含精确的 R 的 n 次方。输出需要去掉前导的 0 后不要的 0 。如果输出是整数,不要输出小数点。

Sample Input

95.123 12
0.4321 20
5.1234 15
6.7592  9
98.999 10
1.0100 12

Sample Output

548815620517731830194541.899025343415715973535967221869852721
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
43992025569.928573701266488041146654993318703707511666295476720493953024
29448126.764121021618164430206909037173276672
90429072743629540498.107596019456651774561044010001
1.126825030131969720661201

代码:

[java]  view plain copy
  1. import java.util.*;
  2. import java.math.*;
  3. import java.io.*;
  4. public class poj1001 {
  5. public static void main(String args[])
  6. {
  7. Scanner cin = new Scanner(System.in);
  8. while(cin.hasNext())
  9. {
  10. String a = cin.next();
  11. int t = cin.nextInt();
  12. BigDecimal ans = new BigDecimal(a);
  13. ans = ans.pow(t);
  14. String result = ans.stripTrailingZeros().toPlainString();
  15. if(result.charAt(0)=='0') result=result.substring(1);
  16. System.out.println(result);
  17. }
  18. }
  19. }

math包里有两个处理大数的类:BigInteger 和 BigDecimal,顾名思义一个是用来处理整数的一个是用来处理有理数数的;

add(),subtract(),pow(),abs()之类的常用运算方法都有,直接拿来用就行了。

BigDecimal关于格式控制的方法多了几个,这对处理各种不同格式的输出是很有用的。

stripTraillingZeros():把不影响数值大小的0全去掉;

1.50 ->1.5;

1.00->1;

if(result.charAt(0)=='0') result=result.substring(1); 如果String当中第一个是0则从下标为1的位置截取。

即 0.0001->.0001;

大家都知道JAVA的类一般都要带toString这个方法的,BigDecimal则有toString,toPlainString和toEngineeringString三种表示成字符串的方法,

下面是这三种方法各自的特点:

toString: using scientific notation if an exponent is needed;//如果需要指数,就用科学计数法

toEngineeringString:using engineering notation if an exponent is needed.//如果需要指数,就用工程符号

toPlainString:without an exponent field.//没有指数

Java大数 poj 1001相关推荐

  1. JAVA大数--POJ 1715 大菲波数

    Problem Description Fibonacci数列,定义如下: f(1)=f(2)=1 f(n)=f(n-1)+f(n-2) n>=3. 计算第n项Fibonacci数值.  Inp ...

  2. (部分转载,部分原创)java大数类(2)

    NYOJ 773  开方数 http://acm.nyist.net/JudgeOnline/problem.php?pid=773 1 import java.util.Scanner; 2 3 p ...

  3. Java大数一些个人的见解

    Java大数一些个人的见解 1.为什么要用Java大数? 在我们做题的过程中经常会遇到大数,虽然C/C++处理很快,当时写过的都知道大数不太好敲,不仅浪费时间,而且代码能力不强的人很容易出错.在没有模 ...

  4. [蓝桥杯][算法训练VIP]麦森数(Java大数+快速幂)

    题目描述 形如2p-1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果P是个素数,2p-1不一定也是素数.到1998年底,人们已找到了37个麦森数.最大的一个是P=3021377,它有9 ...

  5. Java的学习与java大数运算

    之前就学过一点java,但太久没用知识点早就还给书本,之前在实验室搞到一本java的书,今天来重新温习一下 java的语法大部分和c++语言是一样的,入门非常快,所以在这里基础语句的用法就省略了 输出 ...

  6. HDU-5050 java大数

    题意 给出一对长和宽 输出在这个长和宽之下 尽可能大的分出全部相等的小正方形的边长 输入输出都用二进制表示 输入最大是2^1000 分析 两个长度下都可以分出来就是gcd code import ja ...

  7. 【HDU - 1134 】Game of Connections(JAVA大数加法,卡特兰数)

    题干: This is a small but ancient game. You are supposed to write down the numbers 1, 2, 3, ... , 2n - ...

  8. java大数输出一位小数_java大数练习 大明A+B(大数小数的高精度)

    title: java大数练习 大明A+B(大数小数的高精度) tags: [acm,杭电,大数] 题意 Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他 ...

  9. POJ 1001 Exponentiation

    题意:求c的n次幂--要求保留所有小数-- 解法:一开始只知道有BigInteger--java大数+模拟.第一次写java大数--各种报错各种exception--ORZ 没有前导0和小数后面的补位 ...

最新文章

  1. Python命令行补全设置
  2. java selector 源码_Java NIO核心组件-Selector和Channel
  3. Spring 是如何解决循环依赖的?
  4. 《FDTD electromagnetic field using MATLAB》读书笔记之一阶、二阶偏导数差商近似
  5. 学算法先学数据结构?是否是无稽之谈?
  6. route和bridge是什么意思_桥接模式与路由模式区别
  7. win10+ubuntu双系统下,完美卸载ubuntu
  8. U盘文件夹病毒,.exe病毒删除方法
  9. 瑞数5维普期刊js逆向
  10. Corolado软件峰会关于Geronimo的介绍
  11. 洛谷-P1598- 垂直直方图
  12. css之display:inline-block布局
  13. python kmean 多维_绘制多维Kmeans集群NLP python
  14. 服务器主板显示e2,大金中央空调有一台机面板显示E2是什么问题如何解决故障...
  15. VINS的理解(I-V)
  16. 48 个免费的设计素材网站收好,以后不怕没资源用!
  17. python代码运行助手是什么业务_Python代码运行助手
  18. 如何使用Python将语音转换为文本
  19. Idea:多线程调试,以及进入线程的run或者call方法
  20. video标签布播放FLV直播视频

热门文章

  1. jsp+dialog弹不出来_解决JSP页面无法使用EasyUI里面class=easyui-dialog的问题
  2. 关于程序员的搞笑段子,内涵满满的!请允许我先笑5分钟
  3. 一番街的奇迹(很好看)
  4. 计蒜之道2019 复赛 A.外教 Michale 变身大熊猫 线段树辅助建分层图dp
  5. 42个Python实用小例子[内附200+代码地址]
  6. MS SQL Server存储生僻字变为问号(?)的解决方法
  7. 7.26今日92汽油油价,今日国内油价即将三连跌
  8. The Promise of a New Beginning
  9. 汽车 - 数据交换格式
  10. P3076 [USACO13FEB]Taxi G