目前,我在hackerrank 30天代码(python 3)挑战赛的第9天,我遇到了这个错误,我无法修复它:
#!/bin/python3
import sys
from math import *
def factorial(n):
n = int(input())
if n == 0 :
print("1")
else:
print(factorial(n))谢谢你的帮助
发布于 2018-02-05 17:12:41
当然,除非n的值为0,否则不会有任何输出。
当输入不同于0时,您的程序会陷入无限递归,因为没有基本情况。在基本情况下,必须有定义的return语句。您应该了解return语句和print语句之间的区别。
查找阶乘的正确代码如下所示。
def factorial(n):
n = int(input())
if n == 0 :
return 1
else:
return n*factorial(n-1)发布于 2018-09-29 19:02:54
您已经定义了函数factorial,但是您还应该调用它来计算阶乘。例如,factorial(10),在后面的代码中。我在stdout上也得到了同样的错误,没有响应,这就是我为解决这个问题所做的。希望能有所帮助。
发布于 2020-07-20 03:19:53
import sys
def factorial(n):
if n <= 1:
return 1
else:
return n * factorial(n -1) https://stackoverflow.com/questions/48160334
复制相似问题