假设我们有一个正数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