python實(shí)現(xiàn)階乘的三種方法

階乘是基斯頓·卡曼于?1808?年發(fā)明的運(yùn)算符號(hào),是數(shù)學(xué)術(shù)語(yǔ),一個(gè)正整數(shù)的階乘(factorial)是所有小于及等于該數(shù)的正整數(shù)的積,并且0的階乘為1,本文給大家介紹了python實(shí)現(xiàn)階乘的三種方法,通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下

python實(shí)現(xiàn)階乘的幾種方法

階乘(factorial)文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/44693.html

自然數(shù)n!(n的階乘)是指從1、2……(n-1)、n這n個(gè)數(shù)的連乘積,即文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/44693.html

n!=1×2×……×(n-1)×n文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/44693.html

如:5!= 1 * 2 * 3 * 4 * 5 =120文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/44693.html

1、普通的for循環(huán)語(yǔ)句來(lái)計(jì)算階乘:文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/44693.html

1
2
3
4
5
a = 1
n = int(input("請(qǐng)輸入一個(gè)整數(shù)"))
for i in range(1,n+1):
????a = a * i
print(a)

2、使用標(biāo)準(zhǔn)模塊來(lái)計(jì)算階乘:文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/44693.html

使用math模塊的factorial()函數(shù)來(lái)計(jì)算階乘文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/44693.html

1
2
3
import math
n = int(input("請(qǐng)輸入一個(gè)整數(shù):"))
print(math.factorial(n))

3、采用遞歸函數(shù)來(lái)計(jì)算階乘文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/44693.html

寫法一:文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/44693.html

1
2
3
4
5
6
7
8
def factorial(n):
????if? n == 1:
????????return 1
????else:
????????return (n*factorial(n-1))
?
n = int(input("請(qǐng)輸入一個(gè)整數(shù):"))
print(factorial(n))

寫法二,用到了三元運(yùn)算表達(dá)式【注】文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/44693.html

1
2
3
4
5
def factorial(n):
??????return 1 if n < 2 else n * factorial(n - 1)
?
n = int(input("請(qǐng)輸入一個(gè)整數(shù):"))
print(factorial(n))

【注:三元運(yùn)算表達(dá)式,語(yǔ)法:

為真時(shí)的結(jié)果 if 判定條件 else 為假時(shí)的結(jié)果】

以上三種方式分別采用了不同的方法,第一種是最容易理解的,第二種是最python式的,第三種直接定義一個(gè)階乘函數(shù),隨時(shí)都可以調(diào)用,從而得到不同值。

我的微信
微信掃一掃
weinxin
我的微信
惠生活福利社
微信掃一掃
weinxin
我的公眾號(hào)
 

發(fā)表評(píng)論

匿名網(wǎng)友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

拖動(dòng)滑塊以完成驗(yàn)證