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