2014-02-28 635 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'是'pSquared',而不是'pCubed'。 –

回答

19

要做到这一点用户输入:

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.0',而不是'9'。 –

+0

@PaulDraper示例已更新 – didxga

63

没有操作员,但有一种方法。

Math.pow(2, 3) // 8.0 

Math.pow(3, 2) // 9.0 

FYI,一个常见的错误是假设2^3是2的第三功率。不是这样。插入符号是Java(和类似语言)中的有效运算符,但它是二进制xor。

4

Math.pow(double a, double b)方法。请注意,它返回一个双精度值,你将不得不将它转换为像(int)Math.pow(double a, double b)这样的整数。

2

你可以使用Math类的pow方法。以下代码将输出2提升为3(8)

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

最简单的方法是使用Math库。

使用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; 
} 

使用:

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

我如何提示用户输入两个数字?即2 3 = 8 – user3362992

+0

在您的示例基地将是3和指数2.我想你应该乘以一个内部循环,并重复b次。 – Saad

+0

@Saad - 真的,谢谢:) – libik