POJ 1001 Exponentiation(大数处理)
http://poj.org/problem?id=1001
题意:给你一个浮点数,一个整数,求浮点数的整数次方。
思路:大数解决,注意处理后面多余的零跟前面多余的零,以及Java科学计数法的问题。
1 import java.math.*; 2 import java.util.Scanner; 3 4 public class Main { 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 /*sss*/ 8 BigDecimal a, c, d; 9 int b ; 10 Scanner cin = new Scanner(System.in); 11 while(cin.hasNext()){ 12 a = cin.nextBigDecimal(); 13 b = cin.nextInt(); 14 a = a.pow(b); 15 String s; 16 s = a.toPlainString(); //避免科学记数法(如果用a.toSting会存成科学记数法) 17 int start = 0; 18 while(s.charAt(start) == '0'){ //a.charAt(b) 取a字符串下标为b的字符 19 start++; 20 } 21 int end = s.length()-1; 22 while(s.charAt(end) == '0'){ 23 end--; 24 } 25 if(s.charAt(end) == '.'){ 26 end--; 27 } 28 for(int i = start; i <= end; ++i){ 29 System.out.print(s.charAt(i)); 30 } 31 System.out.println(); 32 33 //System.out.println();//subtract-, add+, multiply* divide/ 34 } 35 cin.close(); 36 } 37 }