python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python求任意正整数的阶乘

Python之求任意正整数的阶乘方式

作者:香饽々

这篇文章主要介绍了Python之求任意正整数的阶乘方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Python求任意正整数的阶乘

阶乘(factorial)是一个数学术语,由基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年提出。

一个正整数n的阶乘是所有小于及等于该数的积,亦即 n!=1×2×3×...×(n-1)×n,写作 n!。0的阶乘为1。

利用python函数可以便利计算任意正整数的阶乘,

代码如下:

#求n的阶乘
n=eval(input())
def fact(n):
    s=1
    for i in range(1,n+1):
        s*=i
    return s
print(fact(n))

或者利用递归方式:

n=eval(input())
def fact(n):
    if n<=1:
        return 1
    else:
        return fact(n-1)*n
print(fact(n))

输入整数用python代码求阶乘

一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。

自然数n的阶乘写作n!。

亦即n!=1×2×3×...×(n-1)×n。

阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。

python代码:

#整数阶乘
# 输入需要求取阶乘的整数
num=int(input("请输入整数:"))#输入的数字的类型是整数型(int)
# 创建一个列表用来保存1-n的整数(非必须,只是为了好看点)
s=[]
fac=1
# 判断输入的数字的正负,还是为0.
if num<0:
    print("负数没有阶乘")
elif num==0:
    print("0的阶乘为1.")
else:
    for i in range(1,num+1):
        fac=fac*i#累乘1-num的整数赋值给fac
        s.append(str(i))#为了美观添加的,如果上面没有定义s这个列表就不需要写。
    print("{}的阶乘为:{}={}".format(num,"*".join(s),fac))
    #如果没有s,就不需要第二个占位{}(左边到右边)。joim:连接列表里面的元素,前面的字符作为连接的字符,
    #需要注意的是列表里面的元素需要先转化为字符形式才能连接。

假如输入的整数为5,输出结果为:

请输入整数:5
5的阶乘为:1*2*3*4*5=120

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文