首页 > 代码库 > POJ Exponentiation(大浮点数JAVA轻松解决)

POJ Exponentiation(大浮点数JAVA轻松解决)

  题目链接:Clicke Here~

java解决大数就是爽阿!~

以前大数模板敲啊敲的,敲了半天发现一交果断wrong。只从学会了java妈妈在不用担心我遇到大数了/

这道题遇到的Java函数有:

stripTrailingZeros()            去掉后缀0

toPlainString()               返回大数的非科学计数法

startsWith()

startsWith()函数介绍及扩展:


描述

startsWith(),endsWith()的作用,用法,判断字符串a 是不是以字符串b开头或结尾

java.lang.String.startsWith(String prefix) 如果此字符串的方法测试用指定的前缀开始.

声明

以下是声明java.lang.String.startsWith()方法
public boolean startsWith(String prefix)

参数
prefix -- 这是值的前缀.

返回值
如果此方法返回true参数表示的字符序列是该字符串所表示的字符序列的前缀,否则返回false.

异常
NA


实例:

import java.lang.*;

public class StringDemo {

  public static void main(String[] args) {
  
    String str = "www.yiibai.com";
    System.out.println(str);

    // the start string to be checked
    String startstr1 = "www";
    String startstr2 = "http://";

    // checks that string starts with given substring
    boolean retval1 = str.startsWith(startstr1);
    boolean retval2 = str.startsWith(startstr2);

    // prints true if the string starts with given substring
    System.out.println("starts with " + startstr1 + " ? " + retval1);
    System.out.println("starts with " + startstr2 + " ? " + retval2);
  }
}

参考资料:Java String.startsWith()方法


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

class Main{
	public static void main(String args[]){
		Scanner cin = new Scanner(System.in);
		while(cin.hasNext()){
			BigDecimal R,res;
			int n;
			R = cin.nextBigDecimal();
			n = cin.nextInt();
			res = R.pow(n);
			String ans;
			ans = res.stripTrailingZeros().toPlainString();    //去掉前缀0, 将大数结果转换成非科学计数法的形式
			if(ans.startsWith("0."))                           //判断前缀是否为0.形式
				ans = ans.substring(1);                        //去掉前缀0
			System.out.println(ans);
		}
	}
}