#! /usr/bin/python def my_sqrt(x=0.01): if x < 0: return 0 cnt = 0 if x >1 : m = 0 n = x s = (m + n) / 2.0 while abs(s**2 - x )>= 1e-5: cnt += 1 if ( s**2 < x): m = s s = (m + n) / 2.0 print 'm is:', m else: n = s s = (m + n) / 2.0 print 'n is:', n print 'm is', m print 'n is', n print 'cnt is', cnt else: m = 0 n = 1 mid = (m+n)/2.0 while abs(mid ** 2 - x) >= 1e-5: cnt += 1 if( mid ** 2 < x): m = (m + x) mid = (m + n)/2.0 else: n = ( n + x )/2 mid = (m + n)/2.0 print m , n, mid, cnt my_sqrt(01)
python 二分求根
最新推荐文章于 2024-04-09 12:54:10 发布