对Stdout没有回应(Hackerrank Python)

时间:2018-01-09 01:32:33

标签: python stdout

目前,我在第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))

感谢您的帮助

3 个答案:

答案 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)