Hat Java einen Exponentialoperator?

Lesezeit: 2 Minuten

Benutzer-Avatar
Benutzer3362992

Gibt es einen Exponentialoperator in Java?

Zum Beispiel, wenn ein Benutzer aufgefordert wird, zwei Zahlen einzugeben, und er eingibt 3 und 2wäre die richtige Antwort 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);
    }
}

  • p*p ist pSquarednicht pCubed.

    – Bill die Eidechse

    28. Februar 2014 um 1:30 Uhr

Benutzer-Avatar
Paul Tucher

Es gibt keinen Operator, aber es gibt eine Methode.

Math.pow(2, 3) // 8.0

Math.pow(3, 2) // 9.0

FYI, ein häufiger Fehler ist anzunehmen 2 ^ 3 ist 2 hoch 3. Es ist nicht. Das Caret ist ein gültiger Operator in Java (und ähnlichen Sprachen), aber es ist ein binäres xor.

  • ich wundere mich warum ^ ist der De-Factor-Standard für den bitweisen XOR-Operator (z. B. Java & Python) – muss viele Anfänger oder MATLAB-Benutzer verwirrt haben …

    – flow2k

    9. August 2018 um 2:34 Uhr


  • Warum Java und Python herausgreifen? ^ da bitweises xor in einer prozeduralen Programmiersprache für allgemeine Zwecke von C eingeführt wurde, und praktisch jede Sprache, die auf C basiert (oder sich von C oder C++ inspirieren ließ), folgte dieser Konvention. Die Tatsache, dass es in einer speziellen mathematischen Programmiersprache etwas anderes bedeutet, sollte niemanden wirklich verwirren?

    – Mike „Pomax“ Kamermans

    19. November 2019 um 17:46 Uhr


Benutzer-Avatar
Jason Pater

Um dies mit Benutzereingaben zu tun:

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

Dort ist der Math.pow(double a, double b) Methode. Beachten Sie, dass es ein Double zurückgibt, Sie müssen es in ein Int wie umwandeln (int)Math.pow(double a, double b).

Benutzer-Avatar
libik

Der einfachste Weg ist die Verwendung der Math-Bibliothek.

Verwenden Math.pow(a, b) und das Ergebnis wird sein a^b

Wenn Sie es selbst tun möchten, müssen Sie die for-Schleife verwenden

// 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;
}

Verwendung:

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

Sie können die pow-Methode aus der Math-Klasse verwenden. Der folgende Code gibt 2 auf 3 erhöht aus (8)

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

Benutzer-Avatar
Rajesh

Falls jemand mithilfe von Rekursion eine eigene Exponentialfunktion erstellen möchte, finden Sie unten eine Referenz.

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

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

1198830cookie-checkHat Java einen Exponentialoperator?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy