Python 中的逆階乘
假設我們有一個數字 a,我們必須找到 n,使得 n 的階乘 (n!) 與 a 相同。眾所周知,階乘 n = n * (n - 1) * (n - 2) * ... * 1。如果沒有這樣的整數 n,則返回 -1。
因此,如果輸入類似 a = 120,則輸出將為 5。
為了解決這個問題,我們將遵循以下步驟 -
- i := 0,num := 1
- L:= a 新列表
- while i < a,執行
- i := num 的階乘
- 將 i 插入到 L 的末尾
- num := num + 1
- 如果 a 在 L 中,則
- 返回 (a 在 L 中的索引) +1
- 否則,
- 返回 -1
讓我們看看以下實現來獲得更好的理解 -
示例
import math class Solution: def solve(self, a): i,num=0,1 L=[] while i < a : i=math.factorial(num) L.append(i) num+=1 if a in L : return L.index(a)+1 else : return -1 ob = Solution() print(ob.solve(120))
輸入
120
輸出
5
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP