首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HackerRank编译错误递归因子

HackerRank编译错误递归因子
EN

Stack Overflow用户
提问于 2016-10-10 18:34:12
回答 1查看 527关注 0票数 2

问题

计算并打印给定正整数的阶乘。整数可以和100一样大。

这里有一个问题的链接

我的努力

我已经在其他编译器上尝试过解决方案,它们在其他编译器上工作得很好,但是在hackerrank上,它不能工作,比如编译时错误

代码语言:javascript
复制
# Enter your code here. Read input from STDIN. Print output to STDOUT
def fac(n):
    return 1 if (n < 1) else n * fac(n-1)

no = int(raw_input())
print fac(no)

如能提供任何帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2019-12-16 16:46:33

这个解决方案适用于Python2--我在黑客等级上运行了您的代码,它通过了所有的测试用例。

因此,如果代码是用Python3编译的,则会显示编译错误。

no = int(raw_input()) NameError:未定义名称“raw_input”

这是正确的,因为raw_input必须在Python3中被input()替换。

如果后面执行带有更正的代码,那么还有另一个问题:

印刷费(否) ^ SyntaxError:无效语法

同样,只需在fac(no)周围添加括号,然后代码编译并通过所有测试:

因此,完整的代码如下:

代码语言:javascript
复制
def fac(n):
    return 1 if (n < 1) else n * fac(n-1)

no = int(input())
print (fac(no))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39964612

复制
相关文章

相似问题

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