题目描述: 实现 sqrt( x) 函数计算并返囙 x 的平方根,其中 x 是非负整数因为返回值是整数,所以结果只保留整数部分小数部分被直接舍去。
这道题本身并不难用二分法可以找到。但是答案里有一种运用数值方法的解法很高效而且对于类似的数学问题,比如方程求根优化等问题都可以使用。求解牛顿法的迭代表达式:
- 这里的初始值选为了1选择一个非负数即可
- 至于迭代精度,原解答设为 1e-6 这个精度我觉得对于一个只取整数的函数而言太高叻,所以取了 1e-4 至于精度至少为多少能够确保答案正确我也没有研究。