studio - ¿Java tiene un operador exponencial?
potencia en netbeans (5)
Existe el Math.pow(double a, double b)
. Tenga en cuenta que devuelve un doble, tendrá que convertirlo a una int como (int)Math.pow(double a, double b)
.
¿Hay un operador exponencial en Java?
Por ejemplo, si se le pide a un usuario que ingrese dos números e ingrese 3
y 2
, la respuesta correcta sería 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);
}
}
La forma más fácil es usar la biblioteca Math.
Usa Math.pow(a, b)
y el resultado será a^b
Si quieres hacerlo tú mismo, debes usar for-loop
// 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;
}
Utilizando:
double base = 2;
int exp = 3;
double whatIWantToKnow = myPow(2, 3);
No hay operador, pero hay un método.
Math.pow(2, 3) // 8.0
Math.pow(3, 2) // 9.0
Para su información, un error común es suponer que 2 ^ 3
es 2 a la 3ª potencia. No lo es. El cursor es un operador válido en Java (e idiomas similares), pero es xor binario.
Para hacer esto con la entrada del usuario:
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
puedes usar el método pow de la clase de Matemáticas. El siguiente código generará 2 elevado a 3 (8)
System.out.println(Math.pow(2, 3));