1001考察的就是高精度数据的计算,利用JAVA来解题,似乎有种投机取巧的样子。因为JAVA中本身提供BigDecimal这个类,非常好用,对于处理高精度问题。 代码如下: import java.math.BigDecimal; import java.text.NumberFormat; import java.util.*; public class Main { public void getInput() { Scanner scan=new Scanner(System.in); double r; int n; while(scan.hasNext()) { r=scan.nextDouble(); n=scan.nextInt(); BigDecimal m=new BigDecimal(String.valueOf(r)); BigDecimal temp=new BigDecimal(String.valueOf(r)); for(int i=1;i<n;i++) { m=m.multiply(temp); } String s=String.valueOf(m.toPlainString()); if(s.toCharArray()[0]=='0') { System.out.println(s.substring(1)); } else { int order=s.indexOf("."); int al=1; int k; for(k=order+1;k<s.length();k++) { if(s.toCharArray()[k]!='0') { al=0; break; } } if(al==0) { System.out.println(s); } else { System.out.println(s.substring(0,order)); } } } } public static void main(String[] args) { Main k=new Main(); k.getInput(); } }