递归求平方根的简单程序

2024-07-05 08:54:06 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我是Python新手,我编写了一个简单的程序来求给定数字的平方根。在

n = int(input("ENTER YOUR NUMBER: "))
g = n/2
t = 0.0001

def findRoot(x):
    if ((x * x > n - t) and (x * x <= n + t)):
        return x
    else:
        x = (x + n / x) / 2
        findRoot(x)
r = findRoot(g)

print("ROOT OF {} IS {}".format(n, r))

{cd1>最大误差是^。在

我知道使用while循环很容易,但我无法找出这段代码有什么问题。我调试了代码,在返回值x(第7行)之后,第10行再次运行,结果是“None”值。在

任何nn > 0(4除外)的控制台输出是ROOT OF (Given Number) IS None

你知道怎么更正密码吗?在


Tags: of代码程序nonenumberinputyouris
1条回答
网友
1楼 · 发布于 2024-07-05 08:54:06

您需要返回else块中的内容。这应该是有效的:

def findRoot(x):
    if ((x*x > n - t) and (x*x <= n + t)):
        return x
    else:
        x = (x + n/x)/2
        return findRoot(x)

Alexander在下面的注释中建议的另一种方法是完全删除else,因为只有当我们尚未在if块内返回时,才能访问其中包含的代码。所以这相当于:

^{pr2}$

相关问题 更多 >