"""
结尾0的个数
给你一个正整数列表,输出列表内所有数字的乘积未尾0的个数。
提示:不要直接相乘,数字可能很多,相乘得到的结果可能会很大
"""
def get_factor_count(d1, d2):
"""
计算d1能被d2整除的次数。
参数:
d1 -- 被除数。
d2 -- 除数。
返回值:
count -- d1能被d2整除的次数。
"""
count = 0
while d1 % d2 == 0: # 当d1可以被d2整除时,累加次数
count += 1
d1 = d1 / d2 # 更新d1为除以d2后的值
return count
def get_count(n):
"""
计算给定数字n中包含的2和5的个数。
参数:
n -- 需要分析的数字。
返回值:
f2, f5 -- 分别为n中包含的2和5的个数。
"""
f2 = get_factor_count(n, 2) # 计算n中包含的2的个数
f5 = get_factor_count(n, 5) # 计算n中包含的5的个数
return f2, f5
arr = [8, 6, 150, 7]
count2 = 0 # 初始化2的个数为0
count5 = 0 # 初始化5的个数为0
for i in arr: # 遍历数组,计算每个元素中2和5的个数并累加
c2, c5 = get_count(i)
count2 += c2
count5 += c5
print(f'结尾0的个数:{min(count2, count5)}') # 打印结果,以最小的2和5的个数确定结尾0的个数
评论前必须登录!
注册