hdu5980

来源:互联网 发布:java代理机制 编辑:程序博客网 时间:2024/06/17 08:45

Find Small A

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


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
 


一开始没有看懂这道题,后来经过大佬的提醒明白了题意,a的ASCII码值是97,输入一个int类型的数字,在int范围内,即32位拆成4个八位二进制的数字,让判断多少97,这道题充分说明位运算学的一塌糊涂,每次%2的8次方,看余数是否等于97,然后除以2的8次方。



#include <iostream>#include <algorithm>#include <cstdio>#include <string>#include <cstring>using namespace std;int main(){    int n;    std::ios::sync_with_stdio(false);    cin>>n;int sum=0;    while(n--){        int a;       cin>>a;        while(a){            if(a%256==97)            {                sum++;            }            a=(a>>8);        }    } cout<<sum<<endl;    return 0;}


 
 
0 0
原创粉丝点击