题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5980
Find Small A
Problem Description
As is known to all,the ASCII of character 'a' is 97. Now,find out how many character 'a' in a group of given numbers. Please note that the numbers here are given by 32 bits’ integers in the computer.That means,1digit represents 4 characters(one character is represented by 8 bits’ binary digits).
Input
The input contains a set of test data.The first number is one positive integer N (1≤N≤100),and then N positive integersai (1≤
ai
≤2^32 - 1) follow
Output
Output one line,including an integer representing the number of 'a' in the group of given numbers.
Sample Input
3 97 24929 100
Sample Output
3
Source
将一个32位int型的整数换成32位的2进制,可以拆成4部分,问这四部分里面出现了多少次97的二进制1100001,可以将目标数每次对256取余,取余结果是多少就表示出现了多少次97, 将该数左移8位继续取余操作。
#include<iostream>
#include<cmath>
#include<iomanip>
#include<cstdio>
using namespace std;
typedef long long ll;
const double pi=acos(-1.0);
int main(){
int n;
ll x;
while(cin>>n){
int ans=0;
for(int i=0;i<n;i++){
cin>>x;
for(int j=0;j<4;j++){
if(x%256==97)
ans++;
x>>=8;
}
}
cout<<ans<<endl;
}
return 0;
}