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 }