我在其他编译器上尝试过解决方案,但它们在其他编译器上工作正常,但是对于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)
任何帮助将不胜感激
答案 0 :(得分:1)
该解决方案在 Python 2 上很好用-我在 Hackerrank 上运行了您的代码,并通过了所有测试用例。
因此,如果使用 Python 3 编译代码,则会显示编译错误。
no = int(raw_input())
NameError:未定义名称“ raw_input”
是真的,因为在 Python 3 中必须将raw_input
替换为input()
。
如果随后执行了具有更正的代码,则存在另一个问题:
打印事实(否)
^
SyntaxError:语法无效
再次,只需在fac(no)
周围加上大括号,然后代码编译并通过所有测试:
因此,完整的代码如下:
def fac(n):
return 1 if (n < 1) else n * fac(n-1)
no = int(input())
print (fac(no))