首页 > 试题广场 >

小红的二进制操作

[编程题]小红的二进制操作
  • 热度指数:356 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小红拿到了一个数组,她可以进行最多两次操作:选择一个元素,使其加1。
小红希望操作结束后,数组所有元素乘积的二进制末尾有尽可能多的0。你能帮帮她吗?

输入描述:
第一行输入一个正整数 n,代表数组的大小。
第二行输入 n 个正整数 a_i,代表数组的元素。
1 \leq n \leq 10^5
1 \leq a_i \leq 10^9


输出描述:
输出一个整数,代表操作结束后,数组所有元素乘积的二进制末尾0的数量。
示例1

输入

5
1 2 3 4 5

输出

6

说明

操作两次后数组变为 [2, 2, 4, 4, 5],数组乘积为 320,二进制表示为 101000000,有 6 个 0。

头像 丨阿伟丨
发表于 2025-09-12 15:30:29
题目链接 REAL745 小红的二进制操作 题目描述 小红拿到了一个数组,她可以进行最多两次操作:选择一个元素,使其加1。小红希望操作结束后,数组所有元素乘积的二进制末尾有尽可能多的0。你能帮帮她吗? 思路分析 一个数的二进制末尾有多少个0,取决于其质因数分解中因子2的数量。设这个数量为 。整个数组 展开全文