题解 | #特殊的产奶量#

特殊的产奶量

https://www.nowcoder.com/practice/7780f80e7ece45928c7c138a20fede91

import java.math.BigDecimal;
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param x int整型
     * @return string字符串
     */
    public String mySqrt (int x) {
        // write code here
        double res;
        //求平方根使用二分法逼近
        // res = DichotomySqrt(x);
        //牛顿迭代法
        res = SqrtByNewton(x);
		//保留两位小数,删除多余的小数位
        BigDecimal bigDecimal = new BigDecimal(res).setScale(2, BigDecimal.ROUND_DOWN);
        return bigDecimal.toString();        
    }

    /**二分法求平方根 */
    private double DichotomySqrt(int x) {
        double mid, last;
        double low, up;
        low = 0; //下边界
        up = x; //上边界
        mid = (low + up) / 2;
        do {
            if (mid * mid > x) up = mid;
            else low = mid;
            last = mid;
            mid = (low + up) / 2;
        } while (Math.abs(mid - last) > 0.001); //精度
        return mid;
    }
    /**牛顿迭代法
    * 不断用(x,f(x))的切线来逼近方程x^2-a=0的根
    */
    private double SqrtByNewton(int x){
        if(x==0) return 0;
        double val = x;//最终
        double last;//保存上一个计算的值
        do
        {
            last = val;
            val =(val + x/val) / 2;
        }while(Math.abs(val-last) > 0.001);
        return val;
    }
}

面试高频TOP202 文章被收录于专栏

面试高频TOP202题解

全部评论

相关推荐

xxxxOxo:这公司幽默得很,要了简历半天一点动静都没有,过一会就给你发个邮件让你做测试,做完又没后文了,纯溜人
点赞 评论 收藏
分享
程序员鼠鼠_春招版:都很烂大街,rpc也基本没人问,考研吧,不然就包装一段实习再去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务