Problems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experience for many computer systems.
This problem requires that you write a program to compute the exact value of Rnwhere R is a real number ( 0.0 < R < 99.999 ) and n is an integer such that 0 < n <= 25.
The output will consist of one line for each line of input giving the exact value of R^n. Leading zeros should be suppressed in the output. Insignificant trailing zeros must not be printed. Don't print the decimal point if the result is an integer.
大数运算,考虑用BigDecimal类。
import java.util.Scanner;
import java.math.*;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
BigDecimal result;
while(in.hasNext()){
BigDecimal bd=new BigDecimal(in.next());
result=bd.pow(in.nextInt());
String s=result.stripTrailingZeros().toPlainString();//把数字转化为字符串
if(s.startsWith("0."))
s=s.substring(1);//根据题目要求,如果是大于0小于1的数字要把前边的0去掉
System.out.println(result);
}
}
}