现在的位置: 首页 > 综合 > 正文

HDU-1063 a^b高精度 (Java)

2013年05月25日 ⁄ 综合 ⁄ 共 557字 ⁄ 字号 评论关闭

开始学习Java了,当然,Java的高精度是非常容易着手的!

此题是整数部分为零,应该舍去,小数后面为零的也应该舍去。

Java代码:

import java.math.BigDecimal;
import java.util.*;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Scanner cin=new Scanner(System.in);
        int n,i;
        BigDecimal a,b;
        BigDecimal one=new BigDecimal("1");
        while(cin.hasNextBigDecimal()){
        	b=cin.nextBigDecimal();
        	n=cin.nextInt();
        	a=one;
        	for(i=1;i<=n;i++){
        		a=a.multiply(b);
        	}
        	a=a.stripTrailingZeros();         //去掉小数后面的零。
        	String str=a.toPlainString();    //将小数用字符串的类型表示
        	if(str.startsWith("0.")) str=str.substring(1);            //取第一个字符---截取后面字符。
        	System.out.println(str);
        }
	}

}

抱歉!评论已关闭.