繁体   English   中英

HackerRank Python 编译错误递归因子

[英]HackerRank Python Compile Error Recursion Factorial

问题

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

这是问题的链接

我的努力

我已经在其他编译器上尝试过解决方案,它们在其他编译器上运行良好,但在hackerrank 上它不工作说编译时错误

# 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)

任何帮助将不胜感激

这个解决方案适用于Python 2 - 我在Hackerrank上运行了你的代码,它通过了所有的测试用例。

因此,如果使用Python 3编译代码,则会显示编译错误。

没有 = int(raw_input())

NameError:未定义名称“raw_input”

这是真的,因为在Python 3 中raw_input必须替换为input()

如果之后执行带有更正的代码,则会出现另一个问题:

打印传真(否)

^

语法错误:无效语法

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

所以,完整的代码如下:

def fac(n):
    return 1 if (n < 1) else n * fac(n-1)

no = int(input())
print (fac(no))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM