当前位置: 首页 > 知识库问答 >
问题:

在计算幂时使用int、Double和long

经正祥
2023-03-14

我很难确定何时使用int、double和long。

我正在计算整数的幂,只要提供的幂不是负数,就返回结果。

对于作业,我需要使用以下代码开始:

public static long powerN(int number, int power) {

以下是我的想法:

public class PowerCalculator
{
/**
 * Calculate the non-negative power of an integer number. If a negative power is input, the method returns 1.
 * 
 * @param number The number to take power.
 * @param power The power factor to be taken to.
 * @return The calculation result after taking power of the integer number.
 */
    public static long powerN(int number, int power) {

       if (power > 0)
       {  
         double result = (Math.pow(number, power));  
         return result; 
       }
       else 
       {
         return 1; 
       }
    }
}

我知道我弄乱了int、double或long的使用,但我不知道如何修复它。

共有3个答案

周滨海
2023-03-14

如果您想使用Math.pow

public static long powerN(int number, int power) {
  return (long) Math.pow(number, power);
}
刘令
2023-03-14

你可以自己做:

public static long powerN(
   int number, 
   int power
) {
   if(power == 0) return 1;
   int result = number;

   while(power > 1) {
      result*=number;
      power--;
   }

   return (long)result;
}

附言:这不处理负幂。

夏侯弘量
2023-03-14

等待如果您自己在做,请使用更快的算法,如平方求幂,如下所示:

long powerN(long number, int power){
    long res = 1;
    long sq = number;
    while(power > 0){
        if(power % 2 == 1){
            res *= sq; 
        }
        sq = sq * sq;
        power /= 2;
    }
    return res;
}
 类似资料:
  • 我如何解释以下内容: 打印2.29999 打印2.3

  • 问题内容: 我编写了一个简单的Java程序,如下所示: 由于变量被声明为double,所以我期望这个程序的结果是,但是我得到的输出为 请帮助我理解这一点。 问题答案: 将为0。由于和均为整数。 如果您有,如果答案不是一个完美的整数,则小数点后的数字将被删除。在您的情况下为0.4,因此您将获得0。 你可以施放或到(其他的将被隐式转换)

  • 问题内容: Java中还有其他方法可以计算整数的幂吗? 我现在使用,但是它返回一个,这通常是很多工作,并且在您只想使用s 时看起来不太干净(那么幂也会总是产生)。 有没有像Python 一样简单的东西? 问题答案: 整数只有32位。这意味着其最大值为。如您所见,对于非常小的数字,您很快就会得到不能再用整数表示的结果。这就是使用的原因。 如果要任意整数精度,请使用。但这当然效率较低。

  • 问题内容: 我了解doublenot运算符在JavaScript中的作用。我很好奇它的用法,以及我最近的断言是否正确,我对此很好奇。 我说这既没有意义,也不是因为和都将someVar评估为布尔值,所以!! 是多余的。 实际上,我唯一想到使用double not运算符是合法的,是如果您想与另一个布尔值进行严格比较(因此可能返回的值显式地期望为true或false)。 它是否正确?当我注意到jQuer

  • 描述 (Description) C库函数double ldexp(double x, int exponent)返回x乘以2表示幂的exponent 。 声明 (Declaration) 以下是ldexp()函数的声明。 double ldexp(double x, int exponent) 参数 (Parameters) x - 这是表示有效数的浮点值。 exponent - 这是expo

  • 描述 (Description) C库函数double frexp(double x, int *exponent)返回值是尾数, exponent指向的整数是指数。 结果值是x = mantissa * 2 ^ exponent 。 声明 (Declaration) 以下是frexp()函数的声明。 double frexp(double x, int *exponent) 参数 (Param