① python 輸入一個正整數,計算它的各位數字的階乘之和,判斷它是否是一個階乘和
import math
n=int(input())
t=0
while n>0:
t+=math.factorial(n%10)
n//=10
i=1
while math.factorial(i)<t:
i+=1
if math.factorial(i)==t:
print('yes')
else:
print('no')
② Python程序求階乘
deflittle_than_50(x):
ifx<=50:
returnTrue
else:
returnFalse
defcalculate_factorial(x):
ifx<=1:
return1
else:
returnx*calculate_factorial(x-1)
whileTrue:
n=int(input(":"))
iflittle_than_50(n):
break
else:
print("{}isoutofrange,pleaseinputagain!".format(n))
print("Thefactorialof{}is{}".format(n,calculate_factorial(n)))
③ Python通過函數求s=a!+b!+c!
如果你想在 Python 中通過函數求出 s=a!+b!+c!,你段飢可以使用遞歸函數來實現。
首先吵燃敬,你需要定義一個函數來計算階乘,代碼如下:
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n - 1)
這個函數使用了遞歸的思想,在 n 等於 1 時返回 1,否則返回 n * (n-1)!。
然後,你可以升慎定義另一個函數來計算 s=a!+b!+c!,代碼如下:
def sum_factorials(a, b, c):
return factorial(a) + factorial(b) + factorial(c)
這個函數調用了 factorial 函數來計算 a!、b! 和 c!,然後將它們相加得到最終的結果。
你可以使用這兩個函數來計算任意的 a、b 和 c 的階乘和,例如:
s = sum_factorials(3, 4, 5)
print(s) # Output: 150
希望這些內容能幫助你實現需求。
④ python 遞歸版 階乘求和
python不鼓勵遞歸,請看這個函數的遞歸版(def sn_recursion)和非遞歸版(def sn)的代碼對比:
⑤ python中如何用for語句寫出從1的階乘到20的階乘的加和
def sum_factorial(start, stop):
# 遞歸求階乘
def factorial(n):
if n == 0: return 1
return n * factorial(n-1)
# 生成器解析式生成各個數的階乘,然後再求和
return sum(factorial(i) for i in range(start, stop+1))
# 調用函數,測試代碼
print(sum_factorial(1, 20))
在不調用庫的情況下,最容易想到的就是循環裡面套循環,不過這樣子佔用時間為O(n^2)。當然你這里也就n=20,兩層循環沒啥問題,不過當n足夠大時,可以考慮用演算法。
遞歸演算法佔用時間為O(n),一個for循環為O(stop+1-start),兩者相加,比兩層循環效率高,當然這也是在n足夠大的時候,才談效率。
⑥ python的幾個簡單問題關於冪運算和階乘
前兩個鄭歷都封裝成了函數。最後一個直接喊戚搜運行的。沒有定義函數。
中間那個問題,是因為你忘記做類型轉換,你試著運行這個number=int(number)。應該 就對了。仔顫
⑦ python階乘函數,實現:輸入兩個數num1和num2,計算兩個數的階乘並求和
def jc(num):
jg = 1
辯桐for i in range(1,num+1):
告攜jg *= i
襪灶伏return jg
num1 = int(input())
num2 = int(input())
print('{}!+{}!={}'.format(num1,num2,jc(num1)+jc(num2)))
⑧ python補充函數fun求出n!並將結果返回主函數
下面是 Python 中一個函數的示例,該函數計算給定數字的階乘並蔽空返回結果:n
此代碼將列印 5 的階乘,即 120。
⑨ python里怎麼求n的階乘
1.(非遞歸方法)定義一個求階乘的函數,返回n的階乘,調用該函數求階乘,0和1的階乘均為1 2.遞歸求n!,注意0和1
⑩ python中n的階乘的演算法
我的代碼是
#encoding=utf-8
s=1
n=int(input("請輸入一個整數n:"))
for i in range(1,n+1):
s=s*i
print(n,"!=",s)
結果:
python3 a.py
請輸入一個整數n:5
5 != 120