1001_Java

作者: 李小佛 | 来源:发表于2019-06-18 16:07 被阅读0次

    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

    相关文章

      网友评论

          本文标题:1001_Java

          本文链接:https://www.haomeiwen.com/subject/vvpfqctx.html