Python 中连续数字的最大乘积
pythonserver side programmingprogramming更新于 2025/12/27 7:40:17
假设我们有两个数字 num 和 k,我们必须找到 num 中 k 个连续数字的最大乘积。我们必须记住,num 保证有 >= k 位数字。
因此,如果输入为 num = 52689762 和 k = 4,则输出将为 3024,4 个连续数字的最大乘积为 (8*9*7*6) = 3024。
要解决这个问题,我们将遵循以下步骤 −
- largest := 0
- cand := 1
- while (quotient of num/10)^(k-1) > 0,执行
- 数字 := (nums 的最后一位数字)^k
- cand := 1
- 当数字 > 0 时,执行
- cand := cand * (数字 mod 10)
- 如果 cand 与 0 相同,则
- 退出循环
- 数字 := 数字的商 / 10
- 最大 := 最大和 cand 的最大值
- num := nums 的商 / 10
- 返回 largest
让我们看看下面的实现以便更好地理解 −
示例
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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

