lightoj-1182 - Parity(位运算)
Posted FireCool
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lightoj-1182 - Parity(位运算)相关的知识,希望对你有一定的参考价值。
1182 - Parity
PDF (English) Statistics Forum
Time Limit: 0.5 second(s) Memory Limit: 32 MB
Given an integer n, first we represent it in binary. Then we count the number of ones. We say n has odd parity if the number of one\'s is odd. Otherwise we say n has even parity. 21 = (10101)2 has odd parity since the number of one\'s is 3. 6 = (110)2 has even parity.
Now you are given n, we have to say whether n has even or odd parity.
Input
Input starts with an integer T (≤ 1000), denoting the number of test cases.
Each case contains an integer n (1 ≤ n < 231).
Output
For each case, print the case number and \'odd\' if n has odd parity, otherwise print \'even\'.
Sample Input
Output for Sample Input
2
21
6
Case 1: odd
Case 2: even
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int counter(int num){ int a = 0x55555555; int b = 0x33333333; int c = 0x0f0f0f0f; int d = 0x00ff00ff; int e = 0x0000ffff; num = (num&a)+((num>>1)&a); num = (num&b)+((num>>2)&b); num = (num&c)+((num>>4)&c); num = (num&d)+((num>>8)&d); num = (num&e)+((num>>16)&e); return num; } int main(){ int T,n; scanf("%d",&T); for(int t=1;t<=T;t++){ scanf("%d",&n); printf("Case %d: ",t); printf(counter(n)%2==0?"even\\n":"odd\\n"); } return 0; }
以上是关于lightoj-1182 - Parity(位运算)的主要内容,如果未能解决你的问题,请参考以下文章
python自动化测试学习路线-python设计语言serial模块调用方法