加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 02:53:53 所属栏目: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)
尝试创建一个递归方法,将一个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));
     }
 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读