牛客小白月赛39--E迷惘

#include<iostream>
#define ll long long 
using namespace std;
ll a[10005];
ll n,m;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>n;
    ll ans2=0;
	while(n--){
		cin>>m;
		ll k=0;
		int s=-1;
		while(m){
        	//转为二进制数并记录
			a[k++]=m%2;
            //记录第一个非0的位置
			if(s==-1&&a[k-1])	s=k-1;
			m/=2;
		} 
		ll ans=0;
        //s==-1说明,答案是0,不用算了
		if(s!=-1){
			while(s<k){
				ans=2*ans+a[s++];
			}
			ans2+=ans;
		}
	}
    cout<<ans2<<endl;
	return 0;
}


全部评论

相关推荐

10-22 19:18
上海大学 后端
jopajhhdjwnqk:水印都叠杀人书了
点赞 评论 收藏
分享
冷艳的小师弟在看机会:jd测评乱点直接被挂了,哭死~
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务