基础练习 01字串(取位操作)
生活随笔
收集整理的這篇文章主要介紹了
基础练习 01字串(取位操作)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基礎練習 01字串
時間限制:1.0s 內存限制:256.0MB
提交此題 錦囊1 錦囊2
問題描述
對于長度為5位的一個01串,每一位都可能是0或1,一共有32種可能。它們的前幾個是:
00000
00001
00010
00011
00100
請按從小到大的順序輸出這32種01串。
輸入格式
本試題沒有輸入。
輸出格式
輸出32行,按從小到大的順序每行一個長度為5的01串。
樣例輸出
00000
00001
00010
00011
<以下部分省略>
/*
之前在藍橋官網只隨便做了的幾道題,然后就跑去其他oj上刷題,就沒進藍橋的練習系統了。3.24藍橋杯省賽馬上就要來了,我就再來官網看看。。。
剛剛在基礎題里挑到這題,我記得剛加入刷題大軍時,之前在zcmu上做過,但是不記得當時怎么做的了,所以再用普通方法做了一遍,然后我就忽然想到可以直接用bitset,所以寫這篇博客也是為了記錄bitset這種方法(之前只是知道bitset,卻沒去用過,現在拿這題簡單題來用用它);
關于bitset,傳送門:STL之bitset
/
/
題解:
上面這題明顯可以看出所求就是數字0~31的二進制形式(只含5個bit位)
*/
Ac_code:
1.用bitset的方法:
2.普通方法:
#include <stdio.h> int main() {int a[10];for(int i = 0; i < 32; i++){int x = 5,k = 0,b = i;while(x--){a[k++] = b&1; //b的取二進制位(從右往左取),與 1 位與(&) b >>= 1; //b右移一位}for(int j = 4; j >= 0; j--){printf("%d",a[j]);}puts("");}return 0; }總結
以上是生活随笔為你收集整理的基础练习 01字串(取位操作)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STL之bitset
- 下一篇: 蓝桥杯历届试题 剪格子 (DFS)