题目
有N个整数,对它们进行除以2的操作,直到有数变成奇数为止,输出最多的操作次数。
入力例
3 8 12 40
出力例
2
自己的思路:需要判断有无奇数、进行除操作、计算操作的次数
n = int(input())
a = list(map(int, input().split()))
c=0
while(1):
f=True
for i in range(n): #判断是否存在奇数
if a[i]%2!=0:
f=False
break
if f==False: # 存在奇数,利用f跳出二重循环
break
if f:
c+=1
for j in range(n):# 除操作
a[j]=a[j]/2
print(c)
更简单的写法:用一行语句写循环
n = int(input())
a = list(map(int, input().split()))
ans = 0
while True:
if [i for i in a if i % 2 == 1]: # 是否存在奇数
break
a = [i/2 for i in a] # 每个元素除以2
ans += 1
print(ans)