题目描述
实现 int sqrt ( int x )函数,计算并返回x的平方根,其中x是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
示例:
输入: 4
输出: 2
示例 2:
输入: 8
输出: 2
说明: 8 的平方根是 2.82842…,
由于返回类型是整数,小数部分将被舍去。
题解
思想是通过其他的数学函数代替平方根函数得到精确结果,取整数部分作为答案
通过数学方法得到近似结果,直接作为答案
这道 题官方的解答是用到计算器算法用指数函数和对数函数代替平方根函数的方法,通过有限的可以使用的函数得到我们最终想要的结果,由于计算机无法存储浮点数的精确值,而指数函数和对数函数的参数和返回值均为浮点数好,因此在运算过程中存在误差,在得到结果的整数部分ans后,我们应当找出ans和ans+1中哪一个是真正的答案
public Solution {
public int mySqrt(int x )