Description
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.
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 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.
题目描述:这个没什么说的了,求一个浮点数R的n次方。输出在一行中,给出准确的R的n次幂,开头为0的输出应省略,无意义的末位零绝不能出现。若输出为整数,则不能输出小数点。题目限制还是很多的。
算法思想: 刚查阅资料,java中有一个关于BigDecimal的类,专门是封装了关于大数的处理。来试一试。
```
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
while (input.hasNext()) {
String bigNumberString = input.next();
int n = input.nextInt();
BigDecimal R = new BigDecimal(bigNumberString);
R = R.pow(n);
String answer = R.stripTrailingZeros().toPlainString();
if (answer.charAt(0) == '0') {
answer = answer.substring(1);
}
System.out.println(answer);
}
}
}
这里有一些BigDecimal类的方法说明一下。
stripTrailingZeros() ,去掉BigDecimal后面的0。
toPlainString(),返回BigDecimal类型的String类型字符串。