poj 1001 求高精度幂——java高精度

又去抄依然大神的题解了……

a27400 1001 Accepted 3400K 110MS Java 687B 2011-09-05 20:58:10
import java.io.*;
import java.math.*;
import java.util.*;
import java.text.*;

public class Main {
public static void main(String[] args) {
Scanner cin
=new Scanner (new BufferedInputStream(System.in));
BigDecimal num;
int ep, sta, end, i;
String st;
while(cin.hasNext()){ // 相当于c++的!=EOF。
num = cin.nextBigDecimal();
ep
= cin.nextInt();
num
= num.pow(ep); // 计算num^ep。
st = new String(num.toPlainString()); // toString()会有科学记数法。
sta = 0;
while(st.charAt(sta) == '0') sta ++; // 去掉前缀的0。
end = st.length() - 1;
while(st.charAt(end) == '0') end --; // 去掉后缀的0。
if(st.charAt(end) == '.') end --; // 若小数点后没0,去掉小数点。
for(i = sta; i <= end; i ++)
System.out.print(st.charAt(i));
System.out.println();
}
System.exit(
0);
}
}

  

你可能感兴趣的:(java)