COJ 1059 - Numeric Parity 位操作
来源:互联网 发布:it监控软件 编辑:程序博客网 时间:2024/05/21 17:12
很好玩的一道题,可以熟悉下位操作实现和玩一玩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
1210210
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 0
- COJ 1059 - Numeric Parity 位操作
- LIGHT OJ-1182 - Parity 【按位与】
- Parity
- parity
- coj 1123 带区间操作的线段树(lazy)
- poi操作excel之: 将NUMERIC转换成TEXT
- 位操作
- 位操作
- 位操作
- 位操作
- 位操作
- 位操作
- 位操作
- 位操作
- 位操作
- 位操作
- 位操作
- 位操作
- 试验5 定时器/计数器胡计数功能
- this、类变量和类方法、抽象与封装、继承与多态
- 让你提前认识软件开发(15):程序调试的利器—日志
- 开发中的“软”与“硬”:高画质移动游戏开发之道
- Lesson_for_java_day14--java中的泛型、Comparator、Comparable
- COJ 1059 - Numeric Parity 位操作
- [leetcode] Binary Tree Postorder Traversal
- DOS 清屏指令
- HDU 2846 ac自动机 给定n个串 q个询问 问是n个串中几个串的子串
- Web 前端性能优化——控制DOM大小
- 《算法导论》笔记 第13章 13.4 删除
- hadoop的WordCount例子
- OpenCV编程->Image Watch使用
- python学习笔记-命令行参数