1873 初中的算术
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
Noder现在上初三了,正在开始复习中考。他每天要计算型如 (a× a× a× ⋯× a)n个a 的式子。 其中 0.0
Input
单组测试数据。
第一行有一个实数a和一个整数n,中间用空格分开。 0.0 < a < 99.999,a总是占6位(a长度<=6),0
Input示例
样例输入1
0.4321 20
样例输入2
1.0100 12
Output示例
样例输出1
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
样例输出2
1.126825030131969720661201
题意: 高精度乘法,去掉前导后导的零
分析: 看到别人好多都是用c++过得,自己懒得写高精度了,直接利用java里的几个函数搞定,感觉挺方便的,分别利用到了以下运用,记录下:
string s;
BigDecimal x;
s.charAt(i) //代表查看字符串s的第i个字符
x.stripTrailingZeros().toPlainString(); //代表x数转化成无后导零的字符串
x.toString(); //代表转化成科学计数的字符串
s.substring(1,s.lenth()-1) //代表截取下标的字符串
参考代码
import java.math.BigDecimal;
import java.util.Scanner;
public class N {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
BigDecimal x;
String z = "0";
int n;
while (in.hasNextBigDecimal()) {
x = in.nextBigDecimal();
n = in.nextInt();
x = x.pow(n);
String s = x.stripTrailingZeros().toPlainString();
if(s.charAt(0) == '0') {
s = s.substring(1,s.length());
}
System.out.println(s);
}
}
}
- 如有错误或遗漏,请私聊下UP,thx