列表

详情


NC217429. 我不是酸菜鱼

描述

溪染:叁秋!问你一个问题。
叁秋:你说。
溪染:给你个数分别为a_1,a_2,a_3,...,a_n,定义一个数,需要你找到一个最大的自然数满足
叁秋:这些数最大的取值范围是什么呢?
溪染:
叁秋:不会。
溪染:氧化钙,你真的是条酸菜鱼!
叁秋:什么意思?
溪染:,你又酸又菜又多余!
于是溪染又找到了你,为了证明自己不是酸菜鱼,你需要解出这个问题

输入描述

第一行输入一个正整数
第二行输入个正整数,表示这个正整数的值。

输出描述

仅一行表示问题的答案,即最大的自然数满足 

示例1

输入:

5
32714 7146 4351 24978 31703

输出:

3

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 676ms, 内存消耗: 384K, 提交时间: 2022-04-05 13:01:03

#include<stdio.h>
int main()
{
	int n;
    scanf("%d",&n);
	int s=0;
	for(int i=0;i<n;i++){
		int x;
		scanf("%d",&x);
		while(x%2==0){
			s++;
			x/=2;
		}
	}
	printf("%d",s);
}

C++ 解法, 执行用时: 661ms, 内存消耗: 504K, 提交时间: 2021-06-18 19:08:17

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	long long ans=0,x;
	for(int i=1;i<=n;++i){
		scanf("%d",&x);
		ans+=log2(x&(-x));
	}
	cout<<ans;
}

pypy3 解法, 执行用时: 1898ms, 内存消耗: 358012K, 提交时间: 2021-06-18 19:07:30

n = int(input())

ar = map(int, input().split())

cnt = 0
for v in ar:
    while v % 2 == 0:
        v//=2
        cnt += 1

print(cnt)

上一题