题目链接:Clicke Here~
java解决大数就是爽阿!~
以前大数模板敲啊敲的,敲了半天发现一交果断wrong。只从学会了java妈妈在不用担心我遇到大数了/
这道题遇到的Java函数有:
stripTrailingZeros() 去掉后缀0(但是注意0.0000的情况,是不会去除后缀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);
}
}
}