Java大数 poj 1001

poj1001(java 大数处理) 求高精度幂 Time Limit: 500MS   Memory Limit: 10000K Total Submissions: 169050   Accepted: 40932 Description 对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。  现在要你解决的问题是:对一 阅读详情

求高精度幂
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.   
  5. public class poj1001 {  
  6.     public static void main(String args[])  
  7.     {  
  8.         Scanner cin = new Scanner(System.in);  
  9.         while(cin.hasNext())  
  10.         {  
  11.             String a = cin.next();  
  12.             int t = cin.nextInt();  
  13.             BigDecimal ans = new BigDecimal(a);  
  14.             ans = ans.pow(t);  
  15.             String result = ans.stripTrailingZeros().toPlainString();  
  16.             if(result.charAt(0)=='0') result=result.substring(1);  
  17.             System.out.println(result);  
  18.         }  
  19.     }  
  20. }  


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.//没有指数




poj1001高精度乘法 Problems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experience for many computer systems. This problem requires that you write a program to compute the exact value of Rn where R is a real number ( 0.0 < R < 99.999 ) and n is an integer such that 0 < n <= 25. 输入说明 The input will consist of a set of pairs of values for R and n. The R value will occupy columns 1 through 6, and the n value will be in columns 8 and 9. 输出说明 The output will consist of one line for each line of input giving the exact value of R^n. Leading zeros should be suppressed in the output. Insignificant trailing zeros must not be printed. Don't print the decimal point if the result is an integer. 输入样例 95.123 12 0.4321 20 5.1234 15 6.7592 9 98.999 10 1.0100 12 输出样例 548815620517731830194541.899025343415715973535967221869852721 .00000005148554641076956121994511276767154838481760200726351203835429763013462401 43992025569.928573701266488041146654993318703707511666295476720493953024 29448126.764121021618164430206909037173276672 90429072743629540498.107596019456651774561044010001 1.126825030131969720661201 小提示 If you don't know how to determine wheather encounted the end of input: s is a string and n is an integer C++ while(cin>>s>>n) { ... } c while(scanf("%s%d",s,&n)==2) //to see if the scanf read in as many items as you want /*while(scanf(%s%d",s,&n)!=EOF) //this also work */ { ... } 来源 East Central North America 1988 北大OJ平台(代理 立即下载

相关推荐

手把手教你解决COLMAP编译中的Ceres CUDA支持问题(附详细配置步骤)

本文详细解析了COLMAP编译中Ceres CUDA支持问题的完整解决方案,包括环境准备、Ceres Solver的CUDA编译配置、COLMAP的CUDA集成配置等关键步骤。通过优化CMake参数和解决常见错误,帮助技术人员充分利用GPU加速优势,提升三维重建效率。

vodka的博客 858

poj1001—java

1 package com.calutate; 2 3 import java.util.*; 4 5 public class Precision 6 { 7 int max=100000; 8 9 10 public void Calculate() 11 { 12 ...

207

避坑指南:华为2288H-V5服务器安装系统时常见的RAID与驱动问题解决方案

本文针对华为2288H-V5服务器在安装系统时常见的RAID与驱动问题,提供了详细的避坑指南。文章深度解析了从BIOS版本兼容性核查、RAID配置实战到驱动加载与集成的全流程,重点解决了安装过程中因RAID控制器驱动缺失或兼容性问题导致的硬盘无法识别等典型故障,帮助用户高效完成系统部署。

weixin_29240711的博客 979

poj 1001 java大数类

今天在地大邀请赛中,A题是大数题,java大数类不会用,c++大数模板写的不熟练,就懒得写,结果,只得了三等奖。。。 今天恶补下: import java.math.BigDecimal; import java.util.Scanner; import java.math.BigInteger; public class Math { /** * @param args */

以现在的努力程度之低,谈狗屁的未来,屎的梦想!!! 4978

Cadence仿真数字电路功耗

Cadence仿真数字电路功耗 数字电路的功耗采用平均电流乘电源电压获得,所以本文的关键是测量平均电流。 仿真前设置好仿真参数后,在仿真的ADE街边选择:outputs➡to be saved➡select on design 选择电源的负端电流(若选择正端,则电流为负): 选择完成后,在ADE界面讲所选节点的plot也勾选上,点击run。仿真完成后自动显示波形。在波形上选中该电流曲线,右击选择:send to➡calculator 注意上图中,商店前的波形不稳定,需要进行截取。在calculator

qq_41519780的博客 1万+

GPU架构(1.1)--介绍 GPU的 VPU(Vision Processing Unit)架构

基于自研的 VPU(Vision Processing Unit)架构,专为高性能图形处理和深度学习设计。VPU 架构通过优化计算单元、内存层次结构、同步机制和指令流水线,提供了卓越的性能和能效。VPU 架构通过优化计算单元、内存层次结构、同步机制和指令流水线,提供了卓越的性能和能效。这种架构不仅适用于高性能图形处理,还广泛应用于深度学习、科学计算和边缘计算等领域。通过了解 VPU 架构的详细设计和工作原理,读者可以更好地利用这些先进的 GPU 技术,开发出高效、可靠的计算系统。

MHD0815的博客 1299

a为实数java_Exponentiation(java 大实数)

标签:http://acm.hdu.edu.cn/showproblem.php?pid=1063ExponentiationTime Limit: 2000/500 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8076Accepted Submission(s): 22...

weixin_42421331的博客 208

手把手教你学基于 Linux 的 NPU 固件开发-第 10 讲:可靠性设计(RAS)——让系统坚如磐石错误检测、纠正与上报机制(ECC、Parity)

组件推荐保护机制备注HBM/DDRScrubbing必须开启,定期巡检片上 SRAMECC(权重/激活值),Parity(指令)权衡面积与可靠性计算单元ABFT或DMR(关键路径)防止计算逻辑错误片上网络CRC重传保证数据传输完整性系统软件AER 上报CE 监控自动恢复闭环管理,杜绝 SDC运维策略预测性维护Checkpoint变被动为主动核心心法(信任硬件,但必须验证。在纳米尺度下,错误是必然发生的物理现象。

MHD0815的博客 90

POJ 1001 求高精度幂【JAVA】

求高精度幂 Time Limit: 500MS   Memory Limit: 10000K Total Submissions: 117394   Accepted: 28569 Description 对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。  现在要你解决的问题是:对一

free斩 1522

ROS从入门到精通2-1:机器人3D可视化工具——Rviz

本文详细介绍了Rviz是什么?为什么要使用这个工具?清晰地列出了Rviz的安装流程和界面的基本功能元素;讲解了Rviz基本数据类型与话题,并用两个实例深入理解Rviz数据可视化的过程

FRIGIDWINTER的博客 5346

“华为杯”研究生数学建模竞赛2020年-【华为杯】D题:无人机集群协同对抗(附获奖论文和MATLAB代码实现)

1.问题重述摘 要:本文针对非线性约束条件下红蓝双方无人机集群协同对抗的最优规划问题,结合贪婪队形、非线性规划、内点法、蒙特卡洛方法和全联立正交配置有限元法,构建了无人机集群协同对抗推演模型。,构建了。我们综合考虑了,和。首先分析红方在集群约束下的贪婪队形和拦截策略,然后我们基于内点法联合MATLAB和AMPL编程求解蓝方突防的非线性规划解,最后基于蒙特卡洛法对整个蓝方突防过程进行推演,得到突防概率图。通过推演,我们提出了两块的区域作为所求区域,并对蓝方的最优突防策略进行分析。

getusushu的博客 1550

poj1001 Exponentiation(JAVA实现)

转载自http://blog.sina.com.cn/s/blog_694034130100wpxj.html http://poj.org/problem?id=1001   题目大意很明了,求一个浮点数R的n次方。结果以0开头时,即0.xxx抹零,保留小数点之后的输出。   代码:   import java.math.BigDecimal; import java.util.

Yuna的博客 1403

新凯来嵌入式面经及参考答案

利用编译器预定义宏判断目标架构,如。

大模型大数据攻城狮的专栏 2065

JAVA 处理 大数 POJ1001

由于种种原因最近一段时间一直情绪不佳,写几个水题娱乐一下。 话说去年寒假学了点JAVA,写了些推箱子之类的东东,但还从来没有用JAVA A过题,很早就听说JAVA直接用大数类做大数和高精度手段很是淫荡,今天就来水几把寻点乐子。 POJ1001 Description Problems involving the computation of exact values of ve

sunny606的专栏 2243

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

POJ 1001 Java:求高精度幂

题目本身不难,主要考察到对大数的处理。 Java.math包中,有BigInteger和BigDecimal两个类,分别可以表示长度不可变的,任意精度的整数和小数,并且可以和字符串相互转换,使得Java在处理大数方面具有独特的优势。 AC代码: import java.util.*; import java.math.*; public class POJ1001 { public

卡卡罗特 1407

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

POJ 1001

语言:java(没有用大数处理类,完全按照c++实现)代码package poj1001; //提交代码时不能包含import java.util.Scanner;/** * Created by fant on 17-3-21. */ public class Main { public static void main(String[] args) { Main to

FantDing的博客 457

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

poj1001 大数的幂 java的用法

java中的类BigDecimal java.math.BigDecimal 能表示其他普通类型不能表示的数据范围如double就表示不了超过16位的,但是该类可以。今天做到北大的ACM的1001题,先是用C++写了,后用java做,觉得java做起来简单,但是自己对java不熟悉。从现在开始好好学习学习java。 该题就用到了java中的BigDecimal。 不能用普通的+,-,*,/

yangshuolll的专栏 1625

POJ 题目1001 ,hdu1753 (大数,Java简单题)

http://poj.org/problem?id=1001 package com.hdu; import java.math.BigDecimal; import java.util.Scanner; public class POJ1001 { public static void main(String[] args) { Scanner cin = new Scanner

Hanks软件库 1221

poj1001 Exponentiation【java大数】

Exponentiation Time Limit:500MS Memory Limit:10000K Total Submissions:183034 Accepted:44062 Description Problems involving the computation of exact values of very l...

weixin_30892037的博客 102

poj1001大数乘方java

import java.math.*; import java.util.*; class  n{     public static void main(String[] args){         Scanner in=new Scanner(System.in);         while(in.hasNext()){             BigDecimal val=i

a907607222的专栏 765

Poj1001

[code="java"]package easy; import java.io.BufferedInputStream; import java.math.BigDecimal; import java.util.Scanner; /* * To change this template, choose Tools | Templates * and open th...

nc200830740306的专栏 107

POJ 1001 Exponentiation

题目链接:http://poj.org/problem?id=1001 分析:这是求一个大数的N次幂,但是有点注意的是如果尾部有0要去掉无效的0 前方有0.什么的要把前面的0也给去掉 源代码: import java.math.BigDecimal; import java.math.BigInteger; import java.util.Scanner; public ...

mmdev 91
上一篇: 石油大 2017年省赛前最后一水 1023: Pong’s Birds
下一篇: Java大数汇总
Singular__point
博客等级 码龄10年 38粉丝 160原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值