c 的bitset用法巧解n位01字串問題

2021-10-04 08:05:03 字數 938 閱讀 6788

1.問題描述

對於長度為5位的乙個01串,每一位都可能是0或1,一共有32種可能。它們的前幾個是:

00000

00001

00010

00011

00100

請按從小到大的順序輸出這32種01串。

2.bitset題解

省去一般的模擬暴力解法,說一下c++的bitset巧解做法

#include<bitset> 引入即可

舉例:

bitset<4> bitset1;  //無參構造,長度為4,預設每一位為0

bitset<8> bitset2(12);  //長度為8,二進位制儲存,前面用0補充

string s = "100101";

bitset<10> bitset3(s);  //長度為10,前面用0補充

char s2 = "10101";

bitset<13> bitset4(s2);  //長度為13,前面用0補充

cout << bitset1 << endl;  //0000

cout << bitset2 << endl;  //00001100

cout << bitset3 << endl;  //0000100101

cout << bitset4 << endl;  //0000000010101

參考部落格

3.參考**

如果是n位的話,化成 i<2^n 條件即可

#include

#include

using

namespace std;

intmain()

return0;

}

bitset位向量用法 c

首先要匯入bitset庫 include bitset初始化 舉些例子 bitset 16 foo 16位全為0輸出 0000000000000000 bitset 16 foo 5 共16位,值為5輸出 0000000000000101 int h 1,m 1 bitset 10 foo h 6 ...

51nod1057 N的階乘 大數乘法巧解

這道大數乘法開始我是想套板子模擬的。然後就發現2 3的例子都wa了。驚了 然後在思考後發現n2的板子的確過不了這麼多的大數。不看題的下場 所以,我在網上發現了分塊求大數的方法。思路來自這位大佬的帖子 總的來說,就是把這個乘積分成8位數 自己定 一小塊,然後考慮進製,最後倒著輸出來就行。如下 incl...

C語言 0的各種用法

最近我在繼續學習c語言,想分享一下c語言中0的用法。c語言中有各種關於0的用法,比如 0 0 0 null 0 了解了它們之後,自己忽然感受到程式的神奇之處。0 數字0,值為0 0 字元0,ascii值為48 0 0 作為字串結束標誌,值為0 null 表示空 0 字元0,最後隱藏了乙個 0 必須要...