2014-02-28 4 views
31

Java에 지수 연산자가 있습니까?Java에 지수 연산자가 있습니까?

예를 들어 사용자가 두 개의 숫자를 입력하라는 메시지를 표시하고 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); 
    } 
} 
+11

'p * p'는'pSubared'가 아니라'pSquared'입니다. –

답변

19

이 작업을 수행하려면 :

사용 Math.pow(a, b)

당신이 그것을 직접 수행 할 경우 결과가 a^b

될 것입니다, 당신은 사용하기위한 루프

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

을 사용해야합니다 사용자 입력 :

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 
+6

'(double)'은 완전히 불필요하며'9'가 아니라'9.0'을 출력합니다. –

+0

@ PaulDraper 예가 업데이트되었습니다. – didxga

63

연산자가 있지만 메소드가 있습니다.

Math.pow(2, 3) // 8.0 

Math.pow(3, 2) // 9.0 

참고로, 일반적인 실수는 2^3가 제 3 전원이 가정하는 것입니다. 그렇지 않습니다. 캐럿은 Java (및 유사한 언어)의 유효한 연산자이지만 binary xor입니다.

4

Math.pow(double a, double b) 방법이 있습니다. 그것은 double을 반환한다는 것에주의하십시오. (int)Math.pow(double a, double b)과 같은 int로 형변환해야합니다.

2

Math 클래스의 pow 메소드를 사용할 수 있습니다. 다음 코드는 2를 3 (8)으로 출력합니다.

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

가장 쉬운 방법은 수학 라이브러리를 사용하는 것입니다.

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

어떻게 사용자에게 두 개의 숫자를 입력하게합니까? 즉 2 3 = 8 – user3362992

+0

귀하의 예제에서 3과 지수 2가 될 것입니다. 나는 당신이 내부 루프에 곱해야하고 b 번 반복해야한다고 생각합니다. – Saad

+0

@Saad - true, thanks :) – libik