solution-at4156
AT4156题解
posted on 2021-12-15 06:06:38 | under 题解 | source
题面
本题是一道贪心题,对于每一个 \(a_i\),乘 3 是没有影响的(不管怎么乘都是整数)。但是除以 2 是有次数限制的,最多是 \(a_i\) 含有的 2 的个数。贪心的策略就出来了:每次只对 1 个还可以除以 2 的 \(a_i\) 进行处于 2 操作,则操作次数就是所有 \(a_i\) 含有 2 的个数的和。
代码
#include<bits/stdc++.h>
using namespace std;
int n,a,ans;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a);
while(a%2==0)ans++,a/=2;//累加
}
printf("%d",ans);
return 0;
}

浙公网安备 33010602011771号