'''1.求一个数的平方根的整数部分
(用二分法,不使用sqrt函数)
例如:输入 40 输出6
'''
#根据发的文件更改了一下
import math#引入math库
n=int(input())
left,right=0,n
a = 1e-6#误差
while left<right:
mid=(left+right)/2
if abs(mid**2 - n) < a:
# 在代码中的关于0.99的判断是因为,
# 会出现接近于整数但输出是2.999的情况(比9的平方根为3的时候),
# 所以不能直接int取整
if mid-int(mid)>0.999:
print(int(mid)+1)
else:
print(int(mid))
break #跳出循环
else:
if mid**2<n:
left=mid
#print('jinxingzhong1')
elif mid**2>n:
right=mid
#print('jinxingzhong2')
print(math.sqrt(n))
【代码】草稿箱,无用且不完整,请忽略12【平方根】
最新推荐文章于 2024-08-22 17:27:46 发布