开发者

Java - raise Real To Power n^k

开发者 https://www.devze.com 2023-03-26 18:03 出处:网络
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

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

精彩评论

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