Является ли Java экспоненциальным оператором?
Есть ли экспоненциальный оператор в Java?
Например, если пользователю предлагается ввести два числа, и они вводят 3
и 2
, правильный ответ будет 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);
}
}
Ответы
Ответ 1
Для этого при вводе пользователя:
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
Ответ 2
Нет оператора, но есть метод.
Math.pow(2, 3) // 8.0
Math.pow(3, 2) // 9.0
FYI, распространенная ошибка состоит в том, чтобы предположить, что 2 ^ 3
равно 2 третьей степени. Это не. Карет является допустимым оператором в Java (и аналогичных языках), но он двоичный xor.
Ответ 3
Самый простой способ - использовать библиотеку Math.
Используйте Math.pow(a, b)
, и результат будет a^b
Если вы хотите сделать это самостоятельно, вам нужно использовать 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;
}
Использование:
double base = 2;
int exp = 3;
double whatIWantToKnow = myPow(2, 3);
Ответ 4
Существует метод Math.pow(double a, double b)
. Обратите внимание, что он возвращает double, вам придется отдать его в int как (int)Math.pow(double a, double b)
.
Ответ 5
вы можете использовать метод pow из класса Math. Следующий код выводит 2, поднятый до 3 (8)
System.out.println(Math.pow(2, 3));
Ответ 6
В случае, если кто-то хочет создать там свою экспоненциальную функцию с использованием рекурсии, ниже для вашей справки.
public static double power(double value, double p) {
if (p <= 0)
return 1;
return value * power(value, p - 1);
}