Python利用二分法计算平方根哪里出问题了,python二分法,def square_r


def square_root_2():    i = 0    c= 10    m_max = c    m_min = 0    g = (m_min + m_max)/2    while (abs(g*g-c) > 0.001):    #精度设为为0.001        if (g*g < c):            m_min = g        else:            m_max = g        g = (m_min+m_max)/2        i = i + 1        print ("%d:%.5f" % (i,g))    #小数点后取5位square_root_2()

运行倒是可以的,但是一直是无限循环的情况,哪里不对呢?

问题出现在这个地方:g = (m_min + m_max) / 2,m_min、m_max都为整数其和也为整数,两个整数相除,结果为整数。修改为下面即可:

g = (m_min+m_max) / 2.0

编橙之家文章,

评论关闭