UVa 748 / POJ 1001 Exponentiation (浮点高精度求幂&正则表达式的应用)
来源:互联网 发布:天猫美工工资一般多少 编辑:程序博客网 时间:2024/06/07 07:27
748 - Exponentiation
Time limit: 3.000 seconds
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=97&page=show_problem&problem=689
http://poj.org/problem?id=1001
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 .
Input
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.Output
The output will consist of one line for each line of input giving the exact value of Rn. Leading zeros and insignificant trailing zeros should be suppressed in the output.Sample Input
95.123 120.4321 205.1234 156.7592 998.999 101.0100 12
Sample Output
548815620517731830194541.899025343415715973535967221869852721.0000000514855464107695612199451127676715483848176020072635120383542976301346240143992025569.92857370126648804114665499331870370751166629547672049395302429448126.76412102161816443020690903717327667290429072743629540498.1075960194566517745610440100011.126825030131969720661201
Description
对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。
现在要你解决的问题是:对一个实数R( 0.0 < R < 99.999 ),要求写程序精确计算 R 的 n 次方(Rn),其中n 是整数并且 0 < n <= 25。
现在要你解决的问题是:对一个实数R( 0.0 < R < 99.999 ),要求写程序精确计算 R 的 n 次方(Rn),其中n 是整数并且 0 < n <= 25。
Input
T输入包括多组 R 和 n。 R 的值占第 1 到第 6 列,n 的值占第 8 和第 9 列。
Output
对于每组输入,要求输出一行,该行包含精确的 R 的 n 次方。输出需要去掉前导的 0 后不要的 0 。如果输出是整数,不要输出小数点。
参考资料:正则表达式30分钟入门教程
完整代码:
/*UVa: 0.242s*//*POJ: 125ms,3340KB*/import java.util.*;import java.math.*;import java.io.*;public class Main {static Scanner cin = new Scanner(new BufferedInputStream(System.in));public static void main(String[] args) {while (cin.hasNext()) {BigDecimal R = cin.nextBigDecimal();int n = cin.nextInt();String str = R.pow(n).stripTrailingZeros().toPlainString();// 返回移除所有尾部零的,不带指数字段的此BigDecimal的字符串表示形式if (str.indexOf("0") < str.indexOf("."))str = str.replaceFirst("^0*", "");// ^匹配字符串的开始,*表示重复零次或更多次System.out.println(str);}}}
Source
East Central North America 1988
- UVa 748 / POJ 1001 Exponentiation (浮点高精度求幂&正则表达式的应用)
- poj 1001 Exponentiation(求高精度幂)
- POJ 1001 Exponentiation 求高精度幂
- 高精度浮点数幂次方 POJ 1001 Exponentiation
- 20140709 【高精度浮点数】POJ 1001 Exponentiation
- POJ 1001Exponentiation(高精度浮点乘法)
- poj 1001 uva 748 Exponentiation(高精度小数乘法)
- ACM 1001 Exponentiation 高精度幂浮点型的运算
- POJ 1001-Exponentiation(NYOJ 155 求高精度幂):大数问题
- POJ 1001 Exponentiation&&NYOJ 155 求高精度幂
- poj 1001 浮点数高精度求幂
- uva 748 Exponentiation 浮点数乘方运算 高精度水题
- UVA - 748 Exponentiation 高精度
- POJ 1001:Exponentiation —— 高精度浮点数运算
- POJ-1001 Exponentiation 高精度
- Exponentiation - POJ 1001 高精度
- 高精度乘法,支持浮点运算。POJ 1001 Exponentiation 顺便总结一下string的常用函数
- Exponentiation -高精度求幂的自我总结
- 感谢LP
- 如何避免JDBC内存溢出问题
- autohotkey +vba 利用文本文件传递数据(2)-中断与延时
- struts2
- Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name
- UVa 748 / POJ 1001 Exponentiation (浮点高精度求幂&正则表达式的应用)
- 马尔可夫随机场(Markov Random Field)
- Socket
- Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
- 关于 qt 移植到 omap3530 总结
- OCP-1Z0-051-V9.02-175题
- C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递
- 2014继续加油
- C# WinForm项目打包