kangabo 2021-07-23 16:58 采纳率: 85.1%
浏览 44
已结题

leetcode69题 二分法help see哪错了,为什么打印不出来

img

img


public class demoEZ69 {
    public static void main(String[] args) {
        System.out.println(mySqrt(9));
    }

    public static int mySqrt(int x){ // when x == 25
         int l = 0, r = x, ans = -1;
         while(l <= r){ //while (l <= 25)  //4 <= 5
          int mid = 1 + (r-1) /2; // mid == 13  //mid == 6 //mid ==3
          if((long) mid* mid <= x){ //  if((long)169 <= 25)  //if((long)36 <= 25)
              ans = mid; //ans == 9 //ans == 3
              l = mid + 1;// l == 3 + 1 ==4

          }else{
              r = mid -1;  //r == 13 - 1 ==12 //r == 6-1 == 5
          }


         }
         return ans;
    }
}

  • 写回答

3条回答 默认 最新

  • D_Le 2021-07-23 17:08
    关注

    小写的字母l和数字1

    int mid = l+(r-l)/2,
    代码的第8行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月31日
  • 已采纳回答 7月23日
  • 创建了问题 7月23日

悬赏问题

  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services