LeetCode 69[x的平方根]
题目
链接
详情
实例
提示
题解
思路
由于所求的是整型且是正符号整型,可以采取循环遍历的方式来求取平方根
用 for 循环将 i 由 0 开始遍历,求平方值
当平方值小于指定值,此时循环继续
直到以下两种情况时退出循环:
- 当平方值为指定值时,返回 i
- 当平方值大于指定值时,返回 i - 1
当 i 为有符号整型时,其遍历到 46341 时,平方值为 2147488281 ,但是力扣官方的 int 值的范围最大值为 2147483647,故其会溢出,所以 i 应该设置为 unsigned int 型
代码
class Solution {
public:
int mySqrt(int x) {
for (unsigned int i = 0;;i++)
{
if (x == i * i)
return i;
if (i * i > x)
return i - 1;
}
}
};
本文来自博客园,作者:EricsT,转载请注明原文链接:https://www.cnblogs.com/EricsT/p/18543510