int型のsqrt(int型のx)を実装します。
計算とは非負の整数であることが保証され、X、Xの平方根を返します。
戻り型が整数であるため、桁が切り捨てられ、その結果の整数部のみが返されます。
例1:
入力:4
出力:2
例2:
入力:8
出力:2
説明:8の平方根は2.82842で...、と以来、
小数部分が切り捨てられ、2が返されます。
func mySqrt(x int) int {
l := 0
r := x + 1
for l < r {
mid := l + (r-l)/2
curr := mid * mid
if curr == x {
return mid
} else if curr > x {
r = mid
} else {
l = mid + 1
}
}
return l - 1
}