java – 二元运算符’^’的坏操作数类型

前端之家收集整理的这篇文章主要介绍了java – 二元运算符’^’的坏操作数类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试创建一个递归方法,将一个double值提升为 java课程的int权限.指令说“但是,编写代码,以便当n为偶数时,方法将返回(x ^(n / 2))^ 2.”

这是我到目前为止:

public static double powerFaster(double x,int n) {
         if (n == 0) {
            return 1;
         } 
         else if ((n % 2) == 0) {
           return ((x ^ (n / 2.0) ^ 2.0));  //Error occurs here.
         } else {
           return x * powerFaster(x,(n - 1));
         }
     }

解决方法

^是XOR运算符,而不是幂.使用Math.pow()获取电源.

也就是说,我认为你错过了练习的重点.

你应该返回powerFaster(x,n / 2)* powerFaster(x,n / 2);当n是偶数时(实际上进行一次递归调用,将其结果存储在变量中并将其自身相乘).

public static double powerFaster(double x,int n) {
     if (n == 0) {
        return 1;
     } 
     else if ((n % 2) == 0) {
       double pow = powerFaster(x,n/2);
       return pow * pow;
     } else {
       return x * powerFaster(x,(n - 1));
     }
 }

猜你在找的Java相关文章