做网站时如何建立栅格wordpress评论插件6
做网站时如何建立栅格,wordpress评论插件6,世界十大互联网公司排名,网站建设企业免费咨询一、题目描述给你一个非负整数 x #xff0c;计算并返回 x 的 算术平方根。由于返回类型是整数#xff0c;结果只保留 整数部分#xff0c;小数部分将被 舍去。注意#xff1a;不允许使用任何内置指数函数和算符#xff0c;例如#xff1a;pow(x, 0.5)x ** 0.5示例 1输入…一、题目描述给你一个非负整数x计算并返回x的算术平方根。由于返回类型是整数结果只保留整数部分小数部分将被舍去。注意不允许使用任何内置指数函数和算符例如pow(x, 0.5)x ** 0.5示例 1输入x 4 输出2示例 2输入x 8 输出2 解释8 的算术平方根是 2.82842... 只保留整数部分 2提示0 x 2^31 - 1二、解题思路牛顿迭代法求平方根问题可以转化为求方程[t^2 - x 0]设函数f(t) t² - x根据牛顿迭代公式t(n1) t(n) - f(t) / f(t)因为f(t) t² - x f(t) 2t代入得到t(n1) t(n) - (t² - x) / (2t)化简后得到迭代公式t(n1) (t x / t) / 2因此我们只需要不断使用这个公式更新t直到t * t x为止。三、算法步骤如果x 0直接返回0初始化r x当r * r x时继续迭代使用公式更新r (r x / r) / 2最终返回r四、C语言代码实现int mySqrt(int x) { if (x 0) return 0; long r x; while (r * r x) { r (r x / r) / 2; } return (int)r; }五、复杂度分析时间复杂度牛顿迭代法收敛速度非常快O(log x)在实际运行中通常56次迭代就能得到结果。空间复杂度O(1)只使用了常数级变量。六、示例演示x 8初始值r 8迭代过程r (8 8/8) / 2 4 r (4 8/4) / 2 3 r (3 8/3) / 2 2此时2 * 2 8停止迭代。最终返回2七、总结这道题常见解法有三种方法时间复杂度推荐程度暴力枚举O(√x)❌ 不推荐二分查找O(log x)⭐ 常规解牛顿迭代O(log x)收敛极快⭐⭐⭐ 推荐牛顿迭代法是数学优化解法代码简洁、效率高是这道题非常经典的解法。