二分法求解_精确到小数点后 10 位

题目:已知 sqrt (2)约等于 1.414,要求不用数学库,求 sqrt (2)精确到小数点后 10 位

考察点

  1. 基础算法的灵活应用能力,二分法学过数据结构的同学都知道,但不一定往这个方向考虑
  2. 退出条件设计:前后两次的差值的绝对值<=0.0000000001, 则可退出
# 定义一个最终的二分退出的标准,小数点后10位
global a
a = 0.0000000001
def Search():
    low = 1.4
    high = 1.5
    mid = (low + high) / 2;
    # 前后两次的差值的绝对值 <= 0.0000000001, 则可退出
    while(high-low>a):
        if(high*high>2):
           high=mid
        else:
            low=mid
        mid=(low + high)/2
    print("最终的low 的值: % s" %low)
    print("最终的high的值: % s" %high)
    print("最终的mid 的值: % s" %mid)
if __name__ == "__main__":
    Search()

最终:

二分法求解_精确到小数点后 10 位_第1张图片

你可能感兴趣的:(牛客&Leetcode)