Python基础应用_阶乘与阶乘和

发布时间:2024年01月18日

????阶乘是数学术语,表示从1乘以2乘以3乘以4一直乘到所要求的数。具体来说,一个正整数的阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1。例如,4的阶乘就是1×2×3×4=24,6的阶乘就是1×2×3×…×6=720。在表达阶乘时,使用“!”来表示,例如4!表示4的阶乘。
????阶乘运算符号由基斯顿·卡曼(Christian Kramp)于1808年发明。自然数n的阶乘写作n!,也可以用递归方式定义:0!=1,n!=(n-1)!×n。

????本文列举Python中4种计算阶乘的方式

  1. 循环计算
def factorial(n):
    result = 1
    for i in range(1, n+1):
        result *= i
    return result
  1. 递归计算
def factorial(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * factorial(n-1)
  1. 使用math库中的阶乘函数
import math
def factorial(n):
    return math.factorial(n)
  1. 使用reduce函数和operator库中的乘法运算符
from functools import reduce
import operator
def factorial(n):
    if n==0:
        return 1
    return reduce(operator.mul, range(1, n+1))
  1. 【综合】使用4种算法来计算阶乘和
# -*- coding: utf-8 -*-

from functools import reduce
import operator
import math

def factorial01(n):
    result = 1
    for i in range(1, n+1):
        result *= i
    return result

def factorial02(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * factorial02(n-1)

def factorial03(n):
    return math.factorial(n)

def factorial04(n):
    if n==0:
        return 1
    return reduce(operator.mul, range(1, n+1))

if __name__ == "__main__":
    iSum=0
    for iIdx in range(11):
        ifactorial = factorial01(iIdx)
        print(r'算法01:{}的阶乘为{}'.format(iIdx, factorial01(iIdx)))
        print(r'算法02:{}的阶乘为{}'.format(iIdx, factorial02(iIdx)))
        print(r'算法03:{}的阶乘为{}'.format(iIdx, factorial03(iIdx)))
        print(r'算法04:{}的阶乘为{}'.format(iIdx, factorial04(iIdx)))
        iSum += ifactorial
    print(r'从1到{}阶乘和为{}'.format(10, iSum))

# 从1到10阶乘和为4037914

may the odds be ever in your favor ~

文章来源:https://blog.csdn.net/weixin_36928396/article/details/135679709
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。