Java - 提升Real To Power n ^ k

时间:2011-08-07 17:42:26

标签: java

我在编写程序时难以从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;
        }
    }
}

2 个答案:

答案 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);
    }

}