非常好玩的一道题。能够熟悉下位操作实现和玩一玩bitset这个容器

Description

We define the parity of an integer N as 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 integer 1 <= I <= 2147483647 (2^31-1). Then, let start to work...

Input specification

Each line of the input has an integer I and the end of the input is indicated by a line where I = 0 that should not be processed.

Output specification

For each integer I in the input you should print one line in the form "The parity of B is P (mod 2)." where B is the binary representation of I.

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";
}
}

最新文章

  1. 封装自己的DB类(PHP)
  2. adb push和pull使用
  3. 正常月报表年初未分配利润修改backup
  4. Outer Join Query Over Dblink Can Fail With ORA-904 (Doc ID 730256.1)
  5. centos7 安装及配置
  6. systemctl 启动成功却提示没有权限(解决)
  7. SQL - 批量修改表中所有行数据某字段的部分内容
  8. 为DEDE织梦添加XMl网站地图
  9. flex 图片旋转(解决公转和自转问题)
  10. 【windows核心编程】 第六章 线程基础
  11. Python之路,Day8 - Socket编程进阶
  12. BZOJ 3237([Ahoi2013]连通图-cdq图重构-连通性缩点)
  13. jquery 自动调整图片大小
  14. Memcached&#183;Redis缓存的基本操作
  15. webServices接口开发过程中项目启动遇到的错误org.xml.sax.SAXParseException; lineNumber: 20; columnNumber: 422; schema_reference.4: Failed to read schema document &#39;http://www.springframework.org/schema/beans/spring-bean
  16. HTML+JS实现网站公告信息滚动显示
  17. 解决invalid record found in VCF4 file (at least 8 tab-delimited fields expected)问题,批量修改空格改为制表格格式
  18. opencv学习之路(18)、霍夫变换
  19. ROS 进阶学习笔记(12) - Communication with ROS through USART Serial Port
  20. POJ2229 Sumsets

热门文章

  1. Impala与Hive的比較
  2. Codeforces 466 E. Information Graph
  3. 21. DNS 配置和端口检测
  4. C#中方法Show.和ShowDialog的使用区别
  5. IE浏览器中hasLayout的介绍
  6. 经典SQL语句大全(转载)
  7. js图片放大镜 可动态更换图片
  8. Request获取url各种信息的方法
  9. Apache 2.4.7在CentOS6.4中安装配置反向代理解决单外网IP对应多个内网主机的方法实践
  10. 原创:C sharp 中 Enum的几点小 Tips