POJ_1001_JAVA
算法描述略,附java代码,及知识点解析
package test;
import java.util.*;
import java.math.*;
import java.io.*;
public class AlgoTest {
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
while(cin.hasNext()){
String a=cin.next();
int t=cin.nextInt();
BigDecimal ans=new BigDecimal(a);
ans=ans.pow(t);
String result=ans.stripTrailingZeros().toPlainString();
if(result.charAt(0)=='0')
result=result.substring(1);
System.out.println(result);
}
}
}
@@主要考察java对于大数的处理
1.1 math包里有2个处理大数的类:BigInteger--处理整数,BigDecimal--处理有理数;
1.2 关于这2个类的数学方法:add() //BigInteger.add(BigInteger val) 加
subtract() // 减
pow() //幂 abs() //绝对值
1.3 BigDecimal对格式控制的方法:stripTrailingZeros() //把不影响数值大小的0全部去掉 ,例 1.50-->1.5
JAVA的类一般都要带toString这个方法的,BigDecimal则有toString,toPlainString和toEngineeringString三种表示成字符串的方法,
下面是这三种方法各自的特点:
toString: using scientific notation if an exponent is needed;
toEngineeringString:using engineering notation if an exponent is needed.
toPlainString:without an exponent field.
例
- String str = s.toPlainString();
- System.out.println(str);
- //输出:0.0000000514855464107。。。。。01
- //若String str = s.toString();
- //输出为: 5.14855464107。。。。01E-8