使用巴比伦方法求平方根

问题描述 投票:0回答:1

我已经被这个问题困扰了一段时间了。我们还没有在课堂上讨论这个特定的主题,所以这是我最后的作业之一,这有点令人沮丧。 我觉得我一切都对,但我似乎无法得到正确的平方根。每次我运行它时,答案都是关闭的。 例如 当我插入 100 时,它会输出 26 作为平方根,这是不正确的。 请帮助我需要完成这个,并且对我做错的事情感到不知所措

def sqrt(n):
    nextGuess= n/2
    lastGuess=1
    accuracy= 0.000001
    while lastGuess > accuracy:
        x = (lastGuess + n/ lastGuess) / 2
        lastGuess = nextGuess - x
        nextGuess = x
        return x
n = float(input('Enter a value:'))
if n <= 0:
    print('Invalid number. Enter a positive number.')
else:
    print(sqrt(n))
python square-root
1个回答
0
投票

您的代码中有两个错误:首先您的

return
语句缩进错误,第二您的
lastGuess
应该使用
abs

def sqrt(n):
    nextGuess= n/2
    lastGuess=1
    accuracy= 0.000001
    while lastGuess > accuracy:
        x = (lastGuess + n/ lastGuess) / 2
        lastGuess = abs(nextGuess - x)
        nextGuess = x
    return x
© www.soinside.com 2019 - 2024. All rights reserved.