トピック:
負でない整数 x を指定すると、 x の算術平方根を計算して返します。
戻り値の型が整数であるため、結果の整数部分のみが保持され、小数部分は四捨五入されます。
注: pow(x, 0.5) や x ** 0.5 などの組み込みの指数関数および演算子は使用できません。
例 1:
输入:x = 4
输出:2
例 2:
输入:x = 8
输出:2
解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。
答え:
算術平方根の代わりに、ポケット電卓アルゴリズムを使用します 。
class Solution:
def mySqrt(self, x: int) -> int:
if x == 0:return 0
ans = int(math.exp(0.5 * math.log(x)))
return ans + 1 if (ans + 1) ** 2 <= x else ans