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
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。