首页 >后端开发 >Python教程 > 正文

python递归求阶乘的方法

原创2020-02-13 11:23:3001655

python递归求阶乘的方法

阶乘:例如 5! 指的是“5的阶乘”,即 5! = 1*2*3*4*5。

“递归”就是对自身进行调用的函数。

推荐学习:Python视频教程

def f(x):
    if x == 0:
        return 0
    elif x == 1:
        return 1
    else:
        return (x * f(x-1))
print(f(5))

代码解释:如果 x=5,那么就返回 5*f(4) 的值。而想知道这个值,就得先算出 f(4) 等于多少。根据函数 f(x),f(4) = 4*f(3),所以 f(5) = 5*4*f(3)。以此类推,推到 f(5) = 5*4*3*2*f(1)。函数 f(x) 说了,当 x==1 时,返回值为 1。所以:f(5) = 5*4*3*2*1 = 120。所以,输出结果如下:

120

听起来好像很麻烦,感觉不好理解。如果不用递归函数呢?用最基本的代码,可以写成:

f = 1
for i in range(1,6):
    f = f * i
print(f)

结果一样是120。

以上就是python递归求阶乘的方法的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码
  • 相关标签:python 递归 阶乘
  • 本文原创发布php中文网,转载请注明出处,感谢您的尊重!
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • python编写:首先定义一个函数实现功能;然后定义一个列表,将for遍历得到结果放到列表;最后使用【sum()】函数和即可。
    c语言函数例子:1、Fibonacci数【F(0)=F(1)=1,F(n)=F(n-1)+F(n-2) n>=2】;2、【n*F(n-1)】;3、数组和;4、数组元素最大值。
    c语言函数用定义:首先在main函数里定义变量sum和;然后调用函数【fact()】,并将返回值赋予sum;最后使用printf打印sum结果即可。
    java中利用while循环n:【while(i<=n){sum*=i;i++}】。

    专题推荐

    推荐视频教程
  • 零基础入门Python项目实战零基础入门Python项目实战
  • Python+人工智能全栈工程师(Linux基础篇)Python+人工智能全栈工程师(Linux基础篇)
  • 2019python自学视频2019python自学视频
  • 视频教程分类