问题
计算并打印给定正整数的阶乘。整数可以和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)如能提供任何帮助,将不胜感激。
发布于 2019-12-16 16:46:33
这个解决方案适用于Python2--我在黑客等级上运行了您的代码,它通过了所有的测试用例。
因此,如果代码是用Python3编译的,则会显示编译错误。
no = int(raw_input()) NameError:未定义名称“raw_input”
这是正确的,因为raw_input必须在Python3中被input()替换。
如果后面执行带有更正的代码,那么还有另一个问题:
印刷费(否) ^ SyntaxError:无效语法
同样,只需在fac(no)周围添加括号,然后代码编译并通过所有测试:
因此,完整的代码如下:
def fac(n):
return 1 if (n < 1) else n * fac(n-1)
no = int(input())
print (fac(no))https://stackoverflow.com/questions/39964612
复制相似问题