当前位置:   article > 正文

leetcode 69.X的平方根

leetcode 69.X的平方根

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

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

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

示例 1:

输入:x = 4
输出:2

示例 2:

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

算法思路:这个题应该不用多说,二分法的应用之一就是用来求一个数的平方根,速度快,效率高,具体代码如下:

  1. class Solution {
  2. public:
  3. int mySqrt(int x) {
  4. if(x>0&&x<1)
  5. return 0;
  6. int i=0,m;
  7. int result;
  8. int r=x;
  9. while(i<=r){
  10. m=i+(r-i)/2;
  11. if((long long) m*m<=x){//这里的条件之所以是<=,因为最后的结果如果不是正整数,那肯定是无限接近于m的,所以每次都赋值给result
  12. result=m;
  13. i=m+1;
  14. }
  15. if((long long) m*m>x)
  16. r=m-1;
  17. }
  18. return result;
  19. }
  20. };

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

闽ICP备14008679号