hdu 5980 Find Small A(位操作)

来源:互联网 发布:java视频教程百度云 编辑:程序博客网 时间:2024/06/05 12:43

Find Small A

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1439    Accepted Submission(s): 709


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
397 24929 100
 

Sample Output
3
 

Source
2016ACM/ICPC亚洲区大连站-重现赛(感谢大连海事大学)


看懂题目意思就觉得很容易。题目给出的数字要换做二进制来理解,然后在每一个八位表示的二进制上找到97。统计个数就行了。

#include <iostream>#include <stdio.h>using namespace std;int main(){    int n,a;    while(scanf("%d",&n)!=EOF)    {        int sum=0;        for(int i=0;i<n;i++)        {            scanf("%d",&a);            for(int j=0;j<4;j++)            {                if(a%256==97)                    sum++;                a=a>>8;            }        }        printf("%d\n",sum);    }    return 0;}


原创粉丝点击