数字不同数之和python_检查数字的程序可以写为不同阶乘数的总和,也可以不在Python中写...

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值