用二分法去逼近一个数

weixicai / 2025-01-25 / 原文

如果使用二分法去逼近一个浮点数。

 

 1 # x in (0,90)
 2 def fn(x):
 3     r = 0
 4     n = 20
 5     t = [90 / 2**i for i in range(1, n + 1)]
 6     for i in range(n):
 7         if x > r:
 8             r = r + t[i]
 9             print(f"+{t[i]},{r}")
10         elif x < r:
11             r = r - t[i]
12             print(f"-{t[i]},{r}")
13 
14     return r
15 
16 
17 x = float(input())
18 print(fn(x))

 

运行结果,