题目描述:
给你一个正整数列表 L, 判断列表内所有数字乘积的最后一个非零数字的奇偶性。如果为奇数输出1,偶数则输出0.
例如:L=[2,8,3,50]
则输出:0
示例:
输入:
L = [2, 8, 3, 50]
输出:
0
思路:求所有数字乘积的最后一个非零数字的奇偶性,将这个乘积质因子分解。由于2x5=10:
若质因子2的个数大于5,则还有多余的2可以和剩下质因子乘积,得到的最后一个非零数字一定为偶数。
若质因子2的个数小于等于5,则剩余的质因子全为奇数,得到的最后一个非零数字一定为奇数。
a, b = 0, 0 # a,b分别表示质因子2和5的个数
for i in L:
while i % 2 == 0:
i /= 2
a += 1
while i % 5 == 0:
i /= 5
b += 1
print('0' if a > b else '1')