目前,我在第9天遇到了hackerrank 30天的代码(python 3)挑战,我遇到了这个错误,我无法修复:
#!/bin/python3
import sys
from math import *
def factorial(n):
n = int(input())
if n == 0 :
print("1")
else:
print(factorial(n))
感谢您的帮助
答案 0 :(得分:0)
当然,除非n的值为0,否则不会有任何输出。
当输入与0不同时,您的程序会进入无限递归,因为没有基本情况。在基本情况下,必须有一个定义的return语句。您应该了解return和print语句之间的区别。
找到阶乘的正确代码如下所示。
def factorial(n):
n = int(input())
if n == 0 :
return 1
else:
return n*factorial(n-1)
答案 1 :(得分:0)
您已经定义了阶乘函数,但也应为要计算阶乘的数字调用它。例如,factorial(10),稍后在代码中。 我也收到相同的错误 stdout没有响应,这就是我要解决的问题。 希望对您有帮助。
答案 2 :(得分:0)
import sys
def factorial(n):
if n <= 1:
return 1
else:
return n * factorial(n -1)