python连续乘_Python中最大的连续数字乘积

假设我们有两个数字num和k,我们必须找到num中k个连续数字的最大乘积。我们必须牢记,num必须保证> = k个数字。

因此,如果输入类似于num = 52689762和k = 4,则输出将为3024,连续4位数字的最大乘积为(8 * 9 * 7 * 6)= 3024。

为了解决这个问题,我们将遵循以下步骤-最大:= 0

坎德:= 1

而(num / 10的商)^(k-1)> 0,坎德:=坎德*(数字mod 10)

如果cand与0相同,则

数字:=数字的商/ 10

从循环中出来

位数:=(数字的最后一位)^ k

坎德:= 1

当数字> 0时,执行

最大:=最大和最大

num:= nums / 10的商

返回最大

让我们看下面的实现以更好地理解-

示例class Solution:

def solve(self, num, k):

largest = 0

while num // 10 ** (k - 1) > 0:

digits = num % 10 ** k

cand = 1

while digits > 0:

cand *= digits % 10

if cand == 0:

break

digits //= 10

largest = max(largest, cand)

num //= 10

return largest

ob = Solution()num = 52689762

k = 4

print(ob.solve(num,k))

输入值52689762, 4

输出结果3024

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值