Input
T输入包括多组 R 和 n。 R 的值占第 1 到第 6 列,n 的值占第 8 和第 9 列。
Output
对于每组输入,要求输出一行,该行包含精确的 R 的 n 次方。输出需要去掉前导的 0 后不要的 0 。如果输出是整数,不要输出小数点。
解题思路:
该题考察计算机计算中的精度问题,Java中提供了BigDecimal类解决此类问题。
import java.math.BigDecimal;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String R = sc.next();
int n = sc.nextInt();
BigDecimal bigDecimal = new BigDecimal(R);
BigDecimal result = bigDecimal.pow(n);
result = result.stripTrailingZeros();
String toPlainString = result.toPlainString();
if (!toPlainString.startsWith("0.")) {
System.out.println(toPlainString);
} else {
System.out.println(toPlainString.substring(1));
}
}
}
}
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