- A+
階乘是基斯頓·卡曼于?1808?年發(fā)明的運(yùn)算符號(hào),是數(shù)學(xué)術(shù)語,一個(gè)正整數(shù)的階乘(factorial)是所有小于及等于該數(shù)的正整數(shù)的積,并且0的階乘為1,本文給大家介紹了python實(shí)現(xiàn)階乘的三種方法,通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
python實(shí)現(xiàn)階乘的幾種方法
階乘(factorial)
自然數(shù)n!(n的階乘)是指從1、2……(n-1)、n這n個(gè)數(shù)的連乘積,即
n!=1×2×……×(n-1)×n
如:5!= 1 * 2 * 3 * 4 * 5 =120
1、普通的for循環(huán)語句來計(jì)算階乘:
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)模塊來計(jì)算階乘:
使用math模塊的factorial()函數(shù)來計(jì)算階乘
1
2
3
|
import math n = int ( input ( "請(qǐng)輸入一個(gè)整數(shù):" )) print (math.factorial(n)) |
3、采用遞歸函數(shù)來計(jì)算階乘
寫法一:
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á)式【注】:
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á)式,語法:
為真時(shí)的結(jié)果 if 判定條件 else 為假時(shí)的結(jié)果】
以上三種方式分別采用了不同的方法,第一種是最容易理解的,第二種是最python式的,第三種直接定義一個(gè)階乘函數(shù),隨時(shí)都可以調(diào)用,從而得到不同值。