假设我们有一个正数n,我们必须检查n是否可以写成唯一的正阶乘数之和。
因此,如果输入像n = 144,那么输出将为True,为4!+ 5!= 24 + 120 = 144
为了解决这个问题,我们将遵循以下步骤-事实:= 1
res:=一个新列表
x:= 2
而事实<= n,在res的末尾插入事实
事实:=事实* x
x:= x + 1
对于范围-1到0的i,将i减小1,n:= n-res [i]
如果n> = res [i],则
当n等于0时返回true
让我们看下面的实现以更好地理解-
示例class Solution:
def solve(self, n):
fact = 1
res = []
x = 2
while fact <= n:
res.append(fact)
fact = fact * x
x += 1
for i in range(len(res)-1,-1,-1):
if n>=res[i]:
n-=res[i]
return n==0
ob = Solution()print(ob.solve(144))
输入值144
输出结果True