While 循环数字阶乘不起作用
请告诉我为什么这个求阶乘的 python 代码不正确。 我用了while循环,但它不起作用,我不知道为什么。
n = input("Enter number ")
def factorial(n):
while n >= 0:
if n == 0:
return 1
else:
return n * factorial(n-1)
print("Incorrect Input")
Please tell me why this python code to find factorial is incorrect.
I used while loop, and it's not working, I don't know why.
n = input("Enter number ")
def factorial(n):
while n >= 0:
if n == 0:
return 1
else:
return n * factorial(n-1)
print("Incorrect Input")
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
实际上有多种方法,但两种常见的方法是:
它们一般不合并。然而,错误(正如 @matszwecja 在第一条评论中指出的那样)是顶行返回一个
string
而不是int
。迭代方法:
递归方法:
为了节省重复,这里讨论了许多有效的方法:
Python 中的阶乘函数
There are actually several methods, but two common ones are:
They are generally not combined. However, the error (as pointed out in the first comment here by @matszwecja) is that the top line returns a
string
and not anint
.iterative approach:
recursive approach:
To save repetition many valid methods are discussed here:
Function for factorial in Python