HDU 1063 Exponentiation

http://acm.hdu.edu.cn/showproblem.php?pid=1063

依然是高精度,和上一题很像,不过用上一题的方法一直超时?颇为费解。

查了几个函数的用法,直接用函数操作就不超时了?这题mark一下以后还要再看,对超时表示不太理解。

stripTrailingZeros()是去掉后缀0,toPlainString()是转成非指数型的字符串(上一题要知道这两个函数直接秒杀了哈。。。)。startsWith("//字符串1")判断给定字符串是否以字符串1开头(对应的还有endsWith())。

substring()的用法参考百度百科,看一眼就明白了:"unhappy".substring(2) returns "happy","Harbison".substring(3) returns "bison"

View Code
import java.io.*;
import java.math.*;
import java.util.*;
import java.text.*;
public class Main
{
    public static void main(String[] args)
    {
        Scanner cin=new Scanner (new BufferedInputStream(System.in));
        BigDecimal R,temp;
        int n;
        while(cin.hasNext())
        {
            R=cin.nextBigDecimal();
            n=cin.nextInt();
             String s=R.pow(n).stripTrailingZeros().toPlainString();
            if(s.startsWith("0."))
                s=s.substring(1);
            System.out.println(s);
        }
    }
}
原文地址:https://www.cnblogs.com/xiaohongmao/p/2511411.html