2016 ICPC大连赛区 hdu5980 Find Small A

9 篇文章 0 订阅


Find Small A

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


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
 

Recommend
wange2014   |   We have carefully selected several similar problems for you:   5981  5979  5978  5977  5976 
题意:n个数,每个数代表4个字符,问有多少个'a'。

思路:水题,暴力求解就好了。ac代码如下:

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<cmath>
typedef long long LL;
using namespace std;
#define maxn 1005
#define ll l,mid,now<<1
#define rr mid+1,r,now<<1|1
#define lson l1,mid,l2,r2,now<<1
#define rson mid+1,r1,l2,r2,now<<1|1
char num97[10],now[10];
int main(){
    int num=97;
    int step=8;
    num97[8]=now[8]='\0';
    while(step){
        if(num&1)
          num97[step-1]='1';
        else
          num97[step-1]='0';
        num>>=1;
        step--;
    }
    int n;
    while(~scanf("%d",&n)){
        int ans=0;
        while(n--){
            scanf("%d",&num);
            while(num){
                step=8;
                while(step){
                    if(num&1)
                        now[step-1]='1';
                    else
                        now[step-1]='0';
                    num>>=1;
                    step--;
                }
                if(!strcmp(now,num97)){
                    ans++;
                }
            }
        }
        printf("%d\n",ans);
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值