web-dev-qa-db-ja.com

Javaには指数演算子がありますか?

Javaに指数演算子はありますか?

たとえば、ユーザーが2つの数字を入力するように求められ、32を入力した場合、正しい答えは9になります。

import Java.util.Scanner;
public class Exponentiation {

    public static double powerOf (double p) {
        double pCubed;

        pCubed = p*p;
        return (pCubed);
    }

    public static void main (String [] args) {
        Scanner in = new Scanner (System.in);

        double num = 2.0;
        double cube;    

        System.out.print ("Please put two numbers: ");
        num = in.nextInt();

        cube = powerOf(num);

        System.out.println (cube);
    }
}
49
user3362992

ユーザー入力でこれを行うには:

public static void getPow(){
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter first integer: ");    // 3
    int first = sc.nextInt();
    System.out.println("Enter second integer: ");    // 2
    int second = sc.nextInt();
    System.out.println(first + " to the power of " + second + " is " + 
        (int) Math.pow(first, second));    // outputs 9
33
Jason Pather

演算子はありませんが、メソッドがあります。

Math.pow(2, 3) // 8.0

Math.pow(3, 2) // 9.0

参考までに、よくある間違いは、2 ^ 3が2の3乗だと仮定することです。そうではない。キャレットはJava(および同様の言語)では有効な演算子ですが、バイナリxorです。

84
Paul Draper

最も簡単な方法は、数学ライブラリを使用することです。

Math.pow(a, b)を使用すると、結果はa^bになります

自分でやりたい場合は、forループを使用する必要があります

// Works only for b >= 1
public static double myPow(double a, int b){
    double res =1;
    for (int i = 0; i < b; i++) {
        res *= a;
    }
    return res;
}

を使用して:

double base = 2;
int exp = 3;
double whatIWantToKnow = myPow(2, 3);
5
libik

Math.pow(double a, double b)メソッドがあります。 doubleを返すことに注意してください。(int)Math.pow(double a, double b)のようなintにキャストする必要があります。

4
PlasmaPower

mathクラスのpowメソッドを使用できます。次のコードは、2を3に上げて出力します(8)

System.out.println(Math.pow(2, 3));

誰かが再帰を使用して独自の指数関数を作成したい場合、参照用です。

public static double power(double value, double p) {
        if (p <= 0)
            return 1;

        return value * power(value, p - 1);
    }
1
Rajesh Samson