- 最强解析面试题:x 的平方根(Sqrt(x))
- 题目
- 示例
- 思路
- 代码
- 附录
最强解析面试题:x 的平方根(Sqrt(x))
文章讲解 “ x 的平方根(Sqrt(x)) ” 经典面试题,包含思路及源码,及解惑!
题目示例实现 int sqrt(int x) 函数。
计算并返回 x 的平方根,其中 x 是非负整数。
由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
思路输入: 4
输出: 2
二分法
代码package main
import (
"fmt"
)
func main() {
fmt.Println("hello https://tool.lu/", Sqrt(0))
fmt.Println("hello https://tool.lu/", Sqrt(1))
fmt.Println("hello https://tool.lu/", Sqrt(2))
fmt.Println("hello https://tool.lu/", Sqrt(4))
fmt.Println("hello https://tool.lu/", Sqrt(8))
}
func Sqrt(x int) int {
l, r, mid := 0, x+1, 0
for l < r {
mid = (l + r) >> 1
if mid*mid < x {
l = mid + 1
} else {
r = mid
}
}
return l - 1
}
附录
自负和自大真的是搞笑!



