【发布时间】:2016-06-10 16:16:50
【问题描述】:
所以问题是这样的,我是python新手:
def factorial_cap(num):对于正整数n,n的阶乘(记为n!)是乘积
包含从 1 到 n 的所有正整数。实现返回最小的函数
正 n 使得 n!大于或等于参数 num。
o 假设:num 永远是一个正整数。
# Examples
# factorial_cap(20) output is 4 since 3!<20 but 4!>20
# factorial_cap(24) output is 4 since 4!=24
# factorial_cap(1) output is 1 since 1!=1
# And here is what I got
def factorial_cap(num):
n = 1
for i in range (1,num+1):
n = n*i
我很确定这是阶乘 def 的正确函数。但我就是想不通,除了得到“总价值”,我怎样才能得到我上面发布的例子的正确输出?
顺便说一句,我应该在 def 的末尾使用“return”,还是在这种情况下没关系?
【问题讨论】:
-
尝试在 for 循环后使用
return n。同样在您的循环中,将range(1, num+1)更改为range(2, num+1),您不必再将数字乘以1。 -
@BasSwinckels 当然是。
-
顺便说一句,您可以将斯特林近似用于“阶乘反转”:math.stackexchange.com/questions/61755/…
-
是的,
return n非常重要。这就像韦伯斯特写下一个词的定义,但没有把它放在字典里。不退的话n就没用了。