假设我们有一个数字a,我们必须找到n,这样n(n!)的阶乘与a相同。众所周知,阶乘n = n *(n-1)*(n-2)* ... *1。如果没有这样的整数n,则返回-1。
因此,如果输入像a = 120,则输出将为5。
为了解决这个问题,我们将遵循以下步骤-
i:= 0,num:= 1
L:=新列表
当我<一个,做
i:=阶乘
在L的末尾插入i
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