hdu 5980

题意:给n个数 每个数都可以拆开成一个32位的2进制 每八位一个字节  每个字节的2进制数换算成十进制的看有多少个97。

思路:暴力算呗

 

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 long long xx;
 4 long long hh(long long y)
 5 {
 6     long long i,sum=0;
 7     long long h=1,k=0;
 8 
 9     while(y)
10     {
11         if(y%2==0)
12             i=0;
13         else
14             i=1;
15         y=y/2;
16         k++;
17         sum+=h*i;  h*=2;
18          if(k==8)
19         {
20             if(sum==97) xx++;
21             h=1;
22             k=0;sum=0;
23         }
24 
25 
26     }
27     if(k>0&&sum==97)
28     {
29 
30         xx++;
31     }
32     return xx;
33 }
34 int main()
35 {
36     int n;
37     long long x;
38     xx=0;
39     scanf("%d",&n);
40     for(int i=1;i<=n;i++) {
41         scanf("%I64d",&x);
42          hh(x);
43     }
44     cout<<xx<<endl;
45 }

 

posted on 2017-06-06 21:08  hhhhx  阅读(165)  评论(0编辑  收藏  举报

导航