web-dev-qa-db-fra.com

Java a-t-il un opérateur exponentiel?

Existe-t-il un opérateur exponentiel en Java?

Par exemple, si un utilisateur est invité à entrer deux chiffres et à saisir 3 et 2, la réponse correcte sera 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);
    }
}
46
user3362992

Pour ce faire avec une entrée utilisateur: 

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
29
Jason Pather

Il n'y a pas d'opérateur, mais il y a une méthode.

Math.pow(2, 3) // 8.0

Math.pow(3, 2) // 9.0

Pour votre information, une erreur commune est de supposer que 2 ^ 3 est 2 à la 3ème puissance. Ce n'est pas. Le caret est un opérateur valide en Java (et langages similaires), mais il s'agit d'un xor binaire.

78
Paul Draper

Le moyen le plus simple consiste à utiliser la bibliothèque Math.

Utilisez Math.pow(a, b) et le résultat sera a^b

Si vous voulez le faire vous-même, vous devez utiliser une boucle 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;
}

En utilisant:

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

Il y a la méthode Math.pow(double a, double b). Notez qu'il retourne un double, vous devrez le lancer dans un int comme (int)Math.pow(double a, double b).

4
PlasmaPower

vous pouvez utiliser la méthode pow de la classe Math. Le code suivant affichera 2 élevé à 3 (8)

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

Si quelqu'un souhaite créer sa propre fonction exponentielle à l'aide de la récursivité, le texte ci-dessous est pour référence.

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

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