主要内容是校设课程的习题和课外学习的一些习题。
欢迎关注 『Python习题』 系列,持续更新中
欢迎关注 『Python习题』 系列,持续更新中
题目
描述
设计一个用二分法计算一个大于或等于 0 的实数 n 的平方根的函数sqrt_binary(n),实数 n和计算精度(abs(x*x - n) )控制由用户在同一行内输入,用逗号进行分隔,输出结果保留8位小数。
注:初始区间取[0,n+0.25]
输入格式
在同 行内输入一个实数 n(大于或等于0)和一个代表精度的数字(可用1e-m格式输入)
输出格式
第一行输出用自己设计的函数计算得到的平方根
第二行输出用math库开平方函数计算得到的平方根
输入输出示例
输入 :
5.0,1e-7
输出:
2.23606796
2.23606798
思路
参考答案的有个精度本来是用我们输入的,但是代码里写成固定的固定值了。
要修改成我这样的传参进去:
代码
import math
def sqrt_binary(num,jingdu):
low, high = 0, num + 0.25
while True:
x = (high + low) / 2
if abs(x * x - num) <= jingdu:
return x
elif x * x - num < 0:
low = x
else:
high = x
num = list(map(float,input().split(",")))
print('{:.8f}'.format(sqrt_binary(num[0],num[1])))
print('{:.8f}'.format(math.sqrt(num[0])))
实现效果
总结
大家喜欢的话,给个👍,点个关注!给大家分享更多有趣好玩的Python习题!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2022 mzh
Crated:2022-3-1
欢迎关注 『Python习题』 系列,持续更新中
欢迎关注 『Python习题』 系列,持续更新中
【更多内容敬请期待】