首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stdout无响应(Hackerrank Python)

Stdout无响应(Hackerrank Python)
EN

Stack Overflow用户
提问于 2018-01-09 09:32:33
回答 3查看 10.7K关注 0票数 1

目前,我在hackerrank 30天代码(python 3)挑战赛的第9天,我遇到了这个错误,我无法修复它:

代码语言:javascript
复制
#!/bin/python3

import sys
from math import *

def factorial(n):

    n = int(input())

    if n == 0 :
        print("1") 
    else:
        print(factorial(n))

谢谢你的帮助

EN

回答 3

Stack Overflow用户

发布于 2018-02-05 17:12:41

当然,除非n的值为0,否则不会有任何输出。

当输入不同于0时,您的程序会陷入无限递归,因为没有基本情况。在基本情况下,必须有定义的return语句。您应该了解return语句和print语句之间的区别。

查找阶乘的正确代码如下所示。

代码语言:javascript
复制
def factorial(n):

    n = int(input())

    if n == 0 :
        return 1 
    else:
        return n*factorial(n-1)
票数 0
EN

Stack Overflow用户

发布于 2018-09-29 19:02:54

您已经定义了函数factorial,但是您还应该调用它来计算阶乘。例如,factorial(10),在后面的代码中。我在stdout上也得到了同样的错误,没有响应,这就是我为解决这个问题所做的。希望能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2020-07-20 03:19:53

代码语言:javascript
复制
import sys

def factorial(n):
    if n <= 1:
        return 1
    else:
        return n * factorial(n -1)  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48160334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档