[英]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.