在Python中将n乘以n后,找到末尾的连续零数

假设我们有一个包含n个数字的数组,那么我们必须在将所有n个数字相乘后返回连续零的个数。

因此,如果输入类似于[200、20、5、30、40、14],则输出将为6,例如200 * 20 * 5 * 30 * 40 * 14 = 336000000,最后有六个0。

为了解决这个问题,我们将遵循以下步骤-

  • 定义一个函数count_fact_two()。这将花费n

  • 计数:= 0

  • 当n mod 2为0时

    • 数:=数+ 1

    • n:= n / 2(仅商为整数)

  • 返回计数

  • 定义一个函数count_fact_five()。这将花费n

  • 计数:= 0

  • 当n mod 5为0时

    • 数:=数+ 1

    • n:= n / 5(仅商为整数)

  • 返回计数

  • 从主要方法中,执行以下操作-

  • n:= A的大小

  • 二元:= 0,五元:= 0

  • 对于0到n范围内的i,执行

    • 二进制:=二进制+ count_fact_two(A [i])

    • 五人制:=五人制+ count_fact_five(A [i])

  • 如果两点到五点,那么

    • 返回二

  • 除此以外,

    • 回击

示例

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

def count_fact_two( n ):
   count = 0
   while n % 2 == 0:
      count+=1
      n = n // 2
   return count
def count_fact_five( n ):
   count = 0
   while n % 5 == 0:
      count += 1
      n = n // 5
   return count
def get_consecutive_zeros(A):
   n = len(A)
   twos = 0
   fives = 0
   for i in range(n):
      twos += count_fact_two(A[i])
      fives += count_fact_five(A[i])
   if twos < fives:
      return twos
   else:
      return fives
A = [200, 20, 5, 30, 40, 14]
print(get_consecutive_zeros(A))

输入值

[200, 20, 5, 30, 40, 14]

输出结果

6
猜你喜欢