外贸商城网站建站,广西网站开发建设,芯片设计公司,可以做淘宝店铺开关灯网站题目描述#xff1a;
给你一个非负整数 x #xff0c;计算并返回 x 的 算术平方根 。
由于返回类型是整数#xff0c;结果只保留 整数部分 #xff0c;小数部分将被 舍去 。
注意#xff1a;不允许使用任何内置指数函数和算符#xff0c;例如 pow(x, 0.5) 或者 x ** 0…题目描述
给你一个非负整数 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,x]内找一个满足k^2x的最大数。在一个升序的区间内查找可以用二分法。
代码
class Solution {
public:int mySqrt(int x) {int l0,rx;int ans1;while(lr){int mid(rl)/2;// coutll midmid rrendl;if((long long) mid*midx){ansmid;lmid1;}else{rmid-1;}// coutll midmid rrendl;}return ans;}
};