当前位置:   article > 正文

力扣:69、x的平方根(c++)_c++ x的平方根

c++ x的平方根

给你一个非负整数 x ,计算并返回 x 的 算术平方根

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。

示例 1:

输入:x = 4
输出:2

示例 2:

输入:x = 8
输出:2
解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。

提示:

0 <= x <= 231 - 1

  1. class Solution {
  2. public:
  3. int mySqrt(int x) {
  4. if(x==1){
  5. return 1;
  6. }
  7. int left=0;
  8. int right=x;
  9. while(right-left>1){
  10. int middle=(left+right)/2;
  11. if(x/middle<middle)//为防止溢出,此处相当于middle*middle>x;
  12. right=middle;
  13. else//此处相当于middle*middle<x;
  14. left=middle;
  15. }
  16. return left;//若right-left<=1,直接输出left。
  17. }
  18. };

解题图解:

 最后,直接输出即可。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/164789
推荐阅读
相关标签
  

闽ICP备14008679号