Find Small A HDU - 5980(位运算,二进制)

题意:给N个数 每个数都可以拆开成一个32位的2进制 每八位一个字节  每个字节的2进制数换算成十进制的看有多少个97(就是拆开成二进制,看每八位有没有97)

两种操作:% 256是看看后8位是多少, /= 256是去掉后8位

AC代码:

#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <cmath>
#include <algorithm>
#define IOS ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
const int maxn=1e6+5;
typedef long long ll;
int main() {
	int n;
	cin>>n;
	int ans=0;
	for(int i=1;i<=n;i++){
		int x;
		cin>>x;
		while(x){
			if(x%256==97)ans++;
			x/=256;
		}
	}
	cout<<ans<<endl;
}

猜你喜欢

转载自blog.csdn.net/Alanrookie/article/details/107744949
今日推荐