学习路上,与君共勉。
POJ 1001 JAVA 高精度计算 用到BigDecimal类
题目大意:
让你计算R的n次方。 多组输入。输出不包括多余的前导零和尾随零。
分析:
看输出就知道要用JAVA。用BigDecima类做。
其中去掉多余尾随零的方法: BigDecimal类中的 stripTrailingZeros().toPlainString()解决。
去掉多余前导零: 判断第一位是否为零,如果是零,用String中的 substring 裁剪字符串。
补充知识点:
1、关于BigDecimal:链接
用到BigDecimal类, 用BigDecimal类中的stripTrailingZeros().toPlainString() 作用是解决多余的尾随零。
2、关于String :
string s;
s.startWith("0")//判断字符串是否是零开头 链接
s.subString(int beginIndex , int endIndex)//裁剪字符串s从参数1到参数2不包括参数2. subString也可以只有一个参数,参见结果则是从参数1到最后。链接
3、关于JAVA
AC代码
import java.util.*;
import java.math.*;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while(cin.hasNext()) {
BigDecimal R;
int n;
R=cin.nextBigDecimal();
n=cin.nextInt();
BigDecimal sum=new BigDecimal(1);
for(int i=0;i<n;i++) {
sum=sum.multiply(R);
}
String s=sum.stripTrailingZeros().toPlainString();//去掉多余的尾随零
if(s.startsWith("0")) {//如果第一个元素是0
s=s.substring(1);//从第2个位置裁剪字符串
}
System.out.println(s);
}
}
}