开发者

Java - raise Real To Power n^k

I'm having difficulty writing a program to solve this exercise from a Java text book:

Write a method raiseRealToPower that takes a floating-point value x and an integer k and returns xk. Implement your method so that it can correctly calculate the result when k is negative, using the relationship x^(-k) = 1 / x^k.

Use your method to display a table of values of πk for all values of k from –4 to 4.

I didn't done this part with PI, i know that, if my programs starts to work... this is what i done... tell me please, what is wrong.

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 cou开发者_如何转开发nts 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;
        }
    }
}


Take a look at your loop code. You are just recalculating total from scratch on each iteration, rather than updating the previous result.


I don't understand the part in the question regarding PI, but your method may be much simpler (according to 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);
    }

}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜