我在编写程序时难以从Java教科书中解决此练习:
编写一个方法raiseRealToPower,它接受一个浮点值x和一个整数 k并返回xk。实现您的方法,以便它可以正确计算结果 当k为负时,使用该关系 x ^( - k)= 1 / x ^ k。
使用您的方法显示从-4到4的所有k值的πk值表。
我没有用PI做过这部分,我知道,如果我的程序开始工作......这就是我做的...请告诉我,有什么不对。
import acm.program.*;
public class vjezba55 extends ConsoleProgram {
private static final double PI = 3.14159253;
public void run() {
double x = readDouble ("x: ");
double k = readDouble ("k: ");
println ("x^k = " + raiseDoublePower(x,k));
}
/* Method that counts x^k */
private double raiseDoublePower (double x, double k){
if (k >= 0) {
return Math.pow(x, k);
}
else {
double total = 1;
for (int i= 0; i>k; i--) {
total = (double) 1 / x;
}
return total;
}
}
}
答案 0 :(得分:7)
看看你的循环代码。您只是在每次迭代时从头开始重新计算total
,而不是更新以前的结果。
答案 1 :(得分:4)
我不理解有关PI的问题中的部分,但您的方法可能更简单(根据using the relationship x^(-k) = 1 / x^k
):
private double raiseDoublePower (double x, double k){
if (k >= 0) {
return Math.pow(x, k);
}
else {
return 1 / Math.pow(x, -k);
}
}