[HDOJ 1196] Message 附bitset用法
来源:互联网 发布:医生移动工作站软件 编辑:程序博客网 时间:2024/04/29 21:30
把一个数转成二进制,将最低位的权值求出来即可。
54892112012-03-07 14:09:29Accepted11960MS304K315BC++ajioy#include <iostream>#include <bitset>#include <cmath>using namespace std;int main(){ int num,i;while(cin >> num && num){bitset<8> b(num);//把输入的数转换成二进制for(i = 0; i < b.size(); ++i) //低位在低字节 if(b.test(i)) break;//cout << b[i] << " ";cout << pow(2.0,i) << endl;}}
网友精简版:
#include <iostream>using namespace std;int main(){ int num; while(cin >> num && num){ cout << (num & (num ^ (num - 1))) << endl; }}
网友朴素版:
#include <stdio.h>#include <math.h>int main(){ int n,i,lb; int a[15]; while(scanf("%d",&n),n) { for(i=0;n%2==0;i++) { a[i]=n%2; n=n/2; } a[i]=n%2; lb=a[i]*pow(2,i); printf("%d\n",lb); } return 0;}
bitset 用法整理
构造函数
bitset<n> b;
b有n位,每位都为0.参数n可以为一个表达式.
如bitset<5> b0;则"b0"为"00000";
bitset<n> b(unsigned long u);
b有n位,并用u赋值;如果u超过n位,则顶端被截除
如:bitset<5>b0(5);则"b0"为"00101";
bitset<n> b(string s);
b是string对象s中含有的位串的副本
string bitval ( "10011" );
bitset<5> b0 ( bitval4 );
则"b0"为"10011";
bitset<n> b(s, pos);
b是s中从位置pos开始位的副本,前面的多余位自动填充0;
string bitval ("01011010");
bitset<10> b0 ( bitval5, 3 );
则"b0" 为 "0000011010";
bitset<n> b(s, pos, num);
b是s中从位置pos开始的num个位的副本,如果num<n,则前面的空位自动填充0;
string bitval ("11110011011");
bitset<6> b0 ( bitval5, 3, 6 );
则"b0" 为 "100110";
os << b
把b中的位集输出到os流
os >>b
输入到b中,如"cin>>b",如果输入的不是0或1的字符,只取该字符前面的二进制位.
bool any( )
是否存在置为1的二进制位?和none()相反
bool none( )
是否不存在置为1的二进制位,即全部为0?和any()相反.
size_t count( )
二进制位为1的个数.
size_t size( )
二进制位的个数
flip()
把所有二进制位逐位取反
flip(size_t pos)
把在pos处的二进制位取反
bool operator[]( size_type _Pos )
获取在pos处的二进制位
set()
把所有二进制位都置为1
set(pos)
把在pos处的二进制位置为1
reset()
把所有二进制位都置为0
reset(pos)
把在pos处的二进制位置为0
test(size_t pos)
在pos处的二进制位是否为1?
unsigned long to_ulong( )
用同样的二进制位返回一个unsigned long值
string to_string ()
返回对应的字符串.
- [HDOJ 1196] Message 附bitset用法
- bitset用法
- bitset用法
- BitSet用法
- bitset 用法
- bitset<>用法
- bitset 用法
- bitset 用法
- bitset用法
- bitset用法
- HDOJ 2051 Bitset
- Bitset hdoj 2051
- hdoj.2051 Bitset 20140729
- Bitset hdoj 2051
- HDOJ 2051 Bitset
- HDOJ 2051 Bitset
- hdoj-2051-Bitset
- C++ hdoj 2051Bitset
- 数据结构学习笔记 --- 图(十字链表)
- 使用spring的aop实现权限拦截后出现依赖注入为空的问题
- 人人都是产品经理(读书笔记一)
- jwplayer 如何从视频中截取图片
- VC控件DateTimePicker使用方法
- [HDOJ 1196] Message 附bitset用法
- 数据结构学习笔记 --- 图(遍历)
- 数据结构学习笔记 --- 图(连通性)
- 冒泡排序
- 数据结构学习笔记 --- 图(拓扑排序)
- 数据结构学习笔记 --- 图(关键路径)
- 数据结构学习笔记 --- 图(最短路径)
- 数据库表连接后获取记录条数之COUNT函数
- const引用与非const引用