【题目描述】
众所周知,字符’a’的ASCII码是97
现在,求一组给定的数字中有多少个字母a
请注意,这里的数字是由计算机中的32位整数给出的
也就是说,1位代表4个字符(一个字符由8位二进制数字表示)
【输入格式】
多组输入,每组输入第一行是n,表示有n个整数,接下来给出n个数a(i)。
(n<=100,1<=a(i)<2^32)
【输出格式】
输出有多少个字符a
题目分析思路:以2的8次方(256)为进制,判断各个数位上的数字是否为97,其实根本思想等同于求十进制的各个数位上的数
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n,s=0;
while(cin>>n)
{
int x;
for(int i = 0;i<n;i++)
{
cin>>x;
int d = x%256;
int c = x/256%256;
int b = x/(256*256)%256;
int a = x/(256*256*256);
if(d==97) s++;
if(c==97) s++;
if(b==97) s++;
if(a==97) s++;
}
cout<<s<<endl;
s=0;
}
}