1 描述
设计一个用二分法计算一个大于或等于 1 的实数 n 的平方根的函数sqrt_binary(n),计算精度控制在计算结果的平方与输入的误差不大于1e-6。
注:初始区间取[0,n]
-
输入格式
输入一个实数 n(大于或等于1) -
输出格式
第一行输出用自己设计的函数计算得到的平方根
第二行输出用math库开平方函数计算得到的平方根 -
输入输出示例

2 解题
import math #导入math库
def sqrt_binary(num):
begin = 0
end = num
standard = math.sqrt(num) #这是参考值
while True:
tmp = float((begin+end)/2)
if abs(tmp-standard) <= 1e-6:
print(tmp) #符合题意,直接输出,然后结束
return 0
elif tmp < standard:
begin = tmp
else:
end = tmp
num = float(input())
sqrt_binary(num)
输出

- 对于其中的一条语句有报错,但是程序可以运行

Traceback (most recent call last):
line 32, in <module>
ValueError: could not convert string to float: ''
1010

被折叠的 条评论
为什么被折叠?



