实现 int sqrt(int x) 函数。

计算并返回 x 的平方根,其中 x 是非负整数。

由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

示例 1:

输入: 4

输出: 2

示例 2:

输入: 8

输出: 2

说明: 8 的平方根是 2.82842...,   由于返回类型是整数,小数部分将被舍去。

前言

本题是一道常见的面试题,面试官一般会要求面试者在不使用 x​ 函数的情况下,得到 x 的平方根的整数部分。一般的思路会有以下几种:

  • 通过其它的数学函数代替平方根函数得到精确结果,取整数部分作为答案;
  • 通过数学方法得到近似结果,直接作为答案。

方法一:袖珍计算器算法

「袖珍计算器算法」是一种用指数函数 exp 和对数函数 ln 代替平方根函数的方法。我们通过有限的可以使用的数学函数,得到我们想要计算的结果。

我们将 x​ 写成幂的形式 x1/2,再使用自然对数 e 进行换底,即可得到

x​=x1/2=(elnx)1/2=e21​lnx

这样我们就可以得到 x​ 的值了。

注意: 由于计算机无法存储浮点数的精确值(浮点数的存储方法可以参考 IEEE 754,这里不再赘述),而指数函数和对数函数的参数和返回值均为浮点数,因此运算

题69.x 的平方根相关推荐

  1. LeetCode 题 - 69. x 的平方根 python解法

    题目 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 ...

  2. 学渣的刷题之旅 leetcode刷题 69.x的平方根(暴力法、二分查找)

    实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 输入: ...

  3. LeetCode 69. x 的平方根:二分查找法实现自定义的函数:x 的平方根

    LeetCode 69. x 的平方根:二分查找法实现自定义的函数:x 的平方根 题目描述 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型 ...

  4. 求一个任意实数c的算术平方根_LeetCode 题解 | 69. X 的平方根

    本期精选题解由我们的用户"liweiwei1419"倾情撰写,一起来看看吧! 力扣 69. X 的平方根(点击查看题目) 题目描述 实现 int sqrt(int x) 函数. 计 ...

  5. LeetCode - 69. x 的平方根

    69. x 的平方根 class Solution {private static final Integer MAX_POW = 46340;/*** 牛顿迭代* f(x) = x^2 - n* 切 ...

  6. 二分大法| 求X的开方,结果一个公式解决! (力扣69.X 的平方根)

    本文将讲述:69.X 的平方根(简单) 题目:给你一个非负整数,求其开方,向下取整 思路: 首先,我们把问题数学表示出来,就是:求 f(x) = x^2 - a = 0的解: 而且,题目要求的是 非负 ...

  7. LeetCode #69 x的平方根 二分查找

    LeetCode #69 x的平方根 题目描述 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍 ...

  8. Leetcode 69 x的平方根 (每日一题 20210805)

    实现 int sqrt(int x) 函数.计算并返回 x 的平方根,其中 x 是非负整数.由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去.示例 1:输入: 4 输出: 2 示例 2:输入 ...

  9. LeetCode 69 X的平方根

    原题 解题思路:二分法 class Solution { public:int mySqrt(int x) {long long i=0;long long j=x/2+1;//x的平方根不大于x/2 ...

最新文章

  1. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法
  2. 推荐一款文件搜索神器Everything!
  3. 网络安全用python吗_使用Python进行网络安全渗透——密码攻击测试器
  4. React 深度学习:ReactFiber
  5. P1828 香甜的黄油 Sweet Butter (spfa)
  6. ProgressBar进度条使用注解
  7. PHP判断请求来自哪个操作系统
  8. 什么是计算机在自动控制中的应用,计算机在自动控制中的应用
  9. 今日更新京东皮卡丘1.7修复链接和预约抢购下单商品,手机端茅台抢购软同步上架(可配备群控使用)
  10. 面向不平衡数据的电子病历自动分类研究
  11. 倾斜摄影静态单体化 BIM模型调用解决思路
  12. ubuntu 修改默认用户名_Ubuntu更改用户名的方法
  13. 聚焦场景化应用 华为要做数字化转型的“赶路人”
  14. 找2021考研资料?这些超强资源网站必须知道!
  15. Flutter 无埋点SDK实现
  16. 深度学习英文文献_深度学习中英文电子版(直领)
  17. maven 打包指定依赖包_maven打包为jar-with-dependencies无依赖jar包方法
  18. Witkey威客平台测评
  19. 电视家海信html安装不了,海信电视(盒子)安装电视家方法
  20. VMware vSphere ESXi 6.7/7.0 定制安装盘(驱动或者SLIC)

热门文章

  1. Windows bat 脚本命令基础
  2. Linux如何复制文件和文件夹到另一个目录
  3. SIMD<SIMT<SMT: NVIDIA GPU的并行机制
  4. Linux:TTY串口驱动数据接收设置
  5. 天翼云无法连接mysql_天翼云Linux主机异常
  6. 测试用例具体的设计方法
  7. 【模式识别1】PCA+FLD人脸识别
  8. 安装完PLSQL遇到Initialization error错误解决办法
  9. Gradle 项目配置阿里云仓库
  10. NRF52832学习笔记(23)——GAP主机端连接