本文主要是介绍day20-二分法计算 X 的算术平方根,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述:
给你一个非负整数 x
,计算并返回 x
的 算术平方根 。
由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
示例 1:
输入:x = 4 输出:2
示例 2:
输入:x = 8 输出:2 解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。
解决方案:
1、二分法:不断比较并更新中间值(mid),左值(left),右值(right)
函数代码:
class Solution { public:int mySqrt(int x) {if(x==0) return x;int left=1,right=x;int mid,ans;while(left<=right){mid=left+(right-1)/2;ans=x/mid;if(ans==mid){return ans;}else if(ans>mid){left=mid+1;}else{right=mid-1;}}return right;} };
这篇关于day20-二分法计算 X 的算术平方根的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!