最近,我试图创建一个算法来寻找一个数字的平方根。我对python编程有点陌生。这是我的实现:
def findSquareRt(num):
n = 8 #Initial Guess
while True:
if n**2 < num:
if not num/n == n:
temp = n
n = num/n
if (int((temp+n)/2))**2 == num:
return ((temp+n)/2)
else:
n = (temp+n)/2
但是当我运行上面的代码时,它不会产生任何输出。也许是循环条件导致了这一点,但我无法理解
感谢您回答问题,从回答中有两个问题:
第一个问题:
这个条件在第二次或以后的某个迭代中总是返回False,并且是多余的,因此应该删除它以获得解决方案
第二个问题:
表达式((temp+n)/2)的整数转换返回浮点数的下限值,这会影响输出的精度,因此程序会无限地停留在循环中,等待条件为真。因此需要改变
最终解决方案:
您的代码有很多问题,其中之一是如果
n**2 > num
,您将得到一个无限循环。 一种更简单的方法是:相关问题 更多 >
编程相关推荐