Menu
CoddyTech

Square Root (Integer)

你的函数接收一个非负整数 x,并返回它的整数平方根:满足 r × r ≤ x 的最大整数 r。也就是说,结果是向下取整的平方根,因此对于不是完全平方数的数字,结果是小于它的最大完全平方数的平方根。请自己计算,不要使用内置的平方根或幂函数。

函数

mySqrt(x: integer) → integer
xinteger
要进行平方根运算的非负整数
返回值integer
向下取整到整数的 x 的平方根

约束条件

  • 0 ≤ x ≤ 231 - 1
  • 不要调用内置的平方根、幂或指数函数。

示例

输入
x = 17
输出
4
解释
4 × 4 = 16 不超过 17,但 5 × 5 = 25 更大,所以 17 的平方根向下取整为 4。
challenge icon

进阶

如果 x 也可能是负数,你会如何改为求整数立方根,也就是满足 r × r × r ≤ x 的最大 r?

重置代码
def mySqrt(x):
    # 在这里编写代码

测试 #1

测试 #2

参数

x = 17

预期输出

4