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

    以上是 Python中最大的连续数字乘积 的全部内容, 来源链接: utcz.com/z/321652.html

    回到顶部