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);

        }

    }

}

 

你可能感兴趣的:(exp)