很好玩的一道题,可以熟悉下位操作实现和玩一玩bitset这个容器
Description
We define the parity of an integerNas the sum of the bits in binary representation computed modulo two. As an example, the number 21 = 10101 has three 1s in its binary representation so it has parity 3 (mod 2), or 1.
In this problem you have to calculate the parity of an integer1 <= I <= 2147483647 (2^31-1). Then, let start to work...
Input specification
Each line of the input has an integerIand the end of the input is indicated by a line whereI = 0that should not be processed.
Output specification
For each integerIin the input you should print one line in the form "The parity of B is P (mod 2)." whereBis the binary representation ofI.
Sample input
1
2
10
21
0
Sample output
The parity of 1 is 1 (mod 2).
The parity of 10 is 1 (mod 2).
The parity of 1010 is 2 (mod 2).
The parity of 10101 is 3 (mod 2).
使用bitset来实现,注意bitset的高低为存储顺序,是底位到高位,索引i右0到大的:
void NumericParity()
{
int n = 0;
bitset<32> bi;
while (cin>>n && n)
{
bi = n;
cout<<"The parity of ";
bool flag = false;
for (int i = bi.size() - 1; i >= 0 ; i--)
{
flag |= bi.test(i);
if (flag) cout<<bi[i];
}
cout<<" is "<<bi.count()<<" (mod 2).\n";
}
}
自家自制的位操作:
static bool biNum[32];
int intTobi(int n)
{
int i = 0, c = 0;
while (n)
{
c += n % 2;
biNum[i++] = n % 2;
n >>= 1;
}
return c;
}
void NumericParity2()
{
int n = 0;
while (cin>>n && n)
{
fill(biNum, biNum+32, false);
cout<<"The parity of ";
int c = intTobi(n);
bool flag = false;
for (int i = 31; i >= 0 ; i--)
{
flag |= biNum[i];
if (flag) cout<<biNum[i];
}
cout<<" is "<<c<<" (mod 2).\n";
}
}
分享到:
相关推荐
算法课OJ作业-基于HTML的分治和动态规划源码.zip算法课OJ作业-基于HTML的分治和动态规划源码.zip算法课OJ作业-基于HTML的分治和动态规划源码.zip算法课OJ作业-基于HTML的分治和动态规划源码.zip算法课OJ作业-基于...
课程资源 杭电OJ1000-1099答案 ,仅供参考...
OJ系统汇总-2021-10-5(C)-32页.pdf
oj_-中国移动BOSS业务规范(推荐PDF186).exe <br>oj_-中国移动BOSS业务规范(推荐PDF186).exe
北邮pythonoj作业-输入行和列树打印田字格
一个下雪的js特效,挺漂亮的,适用于圣诞节,春节等
编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及...
OJ系统汇总-2021-10-5.pdf
河南农业大学OJ答案(Java版)
OJ系统汇总-2021-10-6(C)-32页.pdf
hustoj -- 流行的OJ系统,跨平台、易安装、有题库
全网唯一HP officejet 5200系列打印机初始固件 OJ5200_1904A,用于固件退回,专治升级固件后无法识别墨盒问题
OJ系统汇总-2021-10-5(B).pdf
书名:数据结构(C语言版)(第2版) ISBN:9787115379504 作者:严蔚敏 李冬梅 吴伟民
大城 版权所有2015。DineshThirumurthy。 版权所有。 ojo-力量,技能,能力-Openstack Juno操作
OJ系统汇总-2021-12-24(d).pdf
sduoj-sandbox.zip
leetcode 和 oj oj-leetcode-解决方案 我提交的 leetcode,用 C++ 编写并通过 gtest 测试。
这是九度OJ-题目1509:树中两个结点的最低公共祖先的测试数据,input.txt是输入数据,output.txt是输出数据。
官方离线安装包,亲测可用