Java大数 poj 1001
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
Output
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
代码:
- import java.util.*;
- import java.math.*;
- import java.io.*;
- public class poj1001 {
- public static void main(String args[])
- {
- Scanner cin = new Scanner(System.in);
- while(cin.hasNext())
- {
- String a = cin.next();
- int t = cin.nextInt();
- BigDecimal ans = new BigDecimal(a);
- ans = ans.pow(t);
- String result = ans.stripTrailingZeros().toPlainString();
- if(result.charAt(0)=='0') result=result.substring(1);
- System.out.println(result);
- }
- }
- }
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相关推荐
- JAVA大数--POJ 1715 大菲波数
Problem Description Fibonacci数列,定义如下: f(1)=f(2)=1 f(n)=f(n-1)+f(n-2) n>=3. 计算第n项Fibonacci数值. Inp ...
- (部分转载,部分原创)java大数类(2)
NYOJ 773 开方数 http://acm.nyist.net/JudgeOnline/problem.php?pid=773 1 import java.util.Scanner; 2 3 p ...
- Java大数一些个人的见解
Java大数一些个人的见解 1.为什么要用Java大数? 在我们做题的过程中经常会遇到大数,虽然C/C++处理很快,当时写过的都知道大数不太好敲,不仅浪费时间,而且代码能力不强的人很容易出错.在没有模 ...
- [蓝桥杯][算法训练VIP]麦森数(Java大数+快速幂)
题目描述 形如2p-1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果P是个素数,2p-1不一定也是素数.到1998年底,人们已找到了37个麦森数.最大的一个是P=3021377,它有9 ...
- Java的学习与java大数运算
之前就学过一点java,但太久没用知识点早就还给书本,之前在实验室搞到一本java的书,今天来重新温习一下 java的语法大部分和c++语言是一样的,入门非常快,所以在这里基础语句的用法就省略了 输出 ...
- HDU-5050 java大数
题意 给出一对长和宽 输出在这个长和宽之下 尽可能大的分出全部相等的小正方形的边长 输入输出都用二进制表示 输入最大是2^1000 分析 两个长度下都可以分出来就是gcd code import ja ...
- 【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 - ...
- java大数输出一位小数_java大数练习 大明A+B(大数小数的高精度)
title: java大数练习 大明A+B(大数小数的高精度) tags: [acm,杭电,大数] 题意 Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他 ...
- POJ 1001 Exponentiation
题意:求c的n次幂--要求保留所有小数-- 解法:一开始只知道有BigInteger--java大数+模拟.第一次写java大数--各种报错各种exception--ORZ 没有前导0和小数后面的补位 ...
最新文章
- Python命令行补全设置
- java selector 源码_Java NIO核心组件-Selector和Channel
- Spring 是如何解决循环依赖的?
- 《FDTD electromagnetic field using MATLAB》读书笔记之一阶、二阶偏导数差商近似
- 学算法先学数据结构?是否是无稽之谈?
- route和bridge是什么意思_桥接模式与路由模式区别
- win10+ubuntu双系统下,完美卸载ubuntu
- U盘文件夹病毒,.exe病毒删除方法
- 瑞数5维普期刊js逆向
- Corolado软件峰会关于Geronimo的介绍
- 洛谷-P1598- 垂直直方图
- css之display:inline-block布局
- python kmean 多维_绘制多维Kmeans集群NLP python
- 服务器主板显示e2,大金中央空调有一台机面板显示E2是什么问题如何解决故障...
- VINS的理解(I-V)
- 48 个免费的设计素材网站收好,以后不怕没资源用!
- python代码运行助手是什么业务_Python代码运行助手
- 如何使用Python将语音转换为文本
- Idea:多线程调试,以及进入线程的run或者call方法
- video标签布播放FLV直播视频
热门文章
- jsp+dialog弹不出来_解决JSP页面无法使用EasyUI里面class=easyui-dialog的问题
- 关于程序员的搞笑段子,内涵满满的!请允许我先笑5分钟
- 一番街的奇迹(很好看)
- 计蒜之道2019 复赛 A.外教 Michale 变身大熊猫 线段树辅助建分层图dp
- 42个Python实用小例子[内附200+代码地址]
- MS SQL Server存储生僻字变为问号(?)的解决方法
- 7.26今日92汽油油价,今日国内油价即将三连跌
- The Promise of a New Beginning
- 汽车 - 数据交换格式
- P3076 [USACO13FEB]Taxi G