仿人的,很奇怪1、2、3一处也不能少,但没找着少了之后结果会不同的测试数据
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
new Main();
}
public Main() {
Scanner s = new Scanner(System.in);
while (true) {
BigDecimal n = s.nextBigDecimal();
int m = s.nextInt();
char[] c = n.pow(m).toPlainString().toCharArray();
int begin = 0;
int end = c.length - 1;
while (c[begin] == '0') {//1
begin++;
}
while (c[end] == '0') {//2
end--;
}
if (c[end] == '.') {//3
end--;
}
for (; begin <= end; begin++) {
System.out.print(c[begin]);
}
System.out.println();
}
}
}
http://blog.knowsky.com/197659.htm
下面的是我未通过的程序
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
BigDecimal d = new BigDecimal(10000);
public static void main(String[] args) {
new Main();
}
public Main() {
Scanner s = new Scanner(System.in);
while (s.hasNextFloat()) {
float n = s.nextFloat();
int m = s.nextInt();
System.out.println(exec((int) (n * 10000), m));
}
s.close();
}
public String exec(int a, int b) {
String result = new BigDecimal(a).pow(b).divide(d.pow(b)).toPlainString();
if (result.startsWith("0.")) {
return result.substring(1);
}
return result;
}
}