美文网首页程序员
Python 两个经典递归:阶乘和幂

Python 两个经典递归:阶乘和幂

作者: 老鹰杰森 | 来源:发表于2016-11-06 18:03 被阅读1515次

递归简单说来就是调用自身的意思。

来看一个幽默的定义:

recursion \ri-'k&r-zh&n\ n : see recursion
(递归[名词]:见递归)

一、计算n的阶乘

n的阶乘定义为 n \* (n-1) \* (n-2) \* ... \* 1

使用循环实现

def factorial(n):
  result = n
  for i in range(1, n):
    result *= i #依次与1至n-1的数相乘
  return result

首先,把数字n赋值给result,然后result依次与1n-1的数相乘,最后返回结果。

阶乘的数学定义:

  • 1的阶乘是1;
  • 大于1的数n的阶乘是n乘n-1的阶乘。

使用递归实现

def factorial(n):
  if n == 1:
    return 1
  else:
    return n * factorial(n-1)

二、计算幂

python的内建函数 pow(x, n) 或者 ** 运算符可以实现幂的计算。pow(x, n)x 自乘 n-1次,例如pow(2, 3)2乘以自身两次:2 * 2 * 2 = 8

使用循环实现

def power(x, n):
  result = 1
  for i in range(n):
    result *= x
  return result

使用递归实现

  • 对于任意数字x来说,power(x, 0)1
  • 对于任何大于0的数来说,power(x, n)x乘以(x, n-1)的结果。
def power(x, n):
  if n == 0:
    return 1
  else:
    return x * power(x, n-1)

相关文章

  • Python 两个经典递归:阶乘和幂

    递归简单说来就是调用自身的意思。 来看一个幽默的定义: recursion \ri-'k&r-zh&n\ n : ...

  • python递归求阶乘的方法

    python递归求阶乘的方法 阶乘:例如 5! 指的是“5的阶乘”,即 5! = 1*2*3*4*5。 “递归”就...

  • Python递归

    在python中,如阶乘运算,函数的自身循环调用等叫做递归。递归主要有递推和回溯两个阶段。递归的效率低,需要在进入...

  • 专题:递归与累加阶乘

    递归实现累加和阶乘 累加核心代码: 阶乘的核心代码: 阶乘的非递归实现思路: 阶乘的非递归实现核心代码:

  • 数据结构与算法(六)递归

    首先先提出一个问题,如何用递归去求解5的阶乘,这是一个经典的递归问题.我们都知道5的阶乘求法是5×4×3×2×1....

  • C++ 递归算法

    递归算法,尾递归算法求阶乘!

  • Factorial

    使用循环计算阶乘 使用递归计算阶乘

  • python计算阶乘的方法

    循环计算 reduce 递归 python学习——计算阶乘的几种方法_geerniya的博客-CSDN博客_pyt...

  • 递归的解析和使用

    一个方法调用自身的方法称之为递归,常用的两种递归就是阶乘和删除目录了(包括流的拷贝,这块不讲) 阶乘 算阶乘需要有...

  • 递归函数

    定义 程序调用自身的编程技巧称为递归(recursion)。 阶乘 以阶乘为例: 递归条件 构成递归需具备边界条件...

网友评论

    本文标题:Python 两个经典递归:阶乘和幂

    本文链接:https://www.haomeiwen.com/subject/sblnuttx.html