小白的藍橋杯之路 01 字串

2021-08-15 06:14:20 字數 959 閱讀 1444

經過了一天的虐心歷程,我終於下定決心開始寫部落格記錄我的做題過程,今天做的是藍橋杯試題集裡的第二題《 01 字串》問題,很基礎的一道題,我卻死在了乙個小小的錯誤上。

原題題意為:

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

00000

00001

00010

00011

00100

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

題目提供了 32 種這個資料量,於是想到了前段時間學習的遞迴,但是很顯然本題用迴圈就能做出來,我沒有像其他人那樣用五個 for 迴圈暴力出來,而是使用了陣列來存放,先寫乙個 while( ) 迴圈迴圈 32 次,後來寫乙個 while( ) 迴圈來實現進製操作,如果當前位數數值到 2 就清零同時進製,最後輸出。

附**:

#includeint main()

,i = 32,n,m,z;

while(i)

n--;

}i--;

}return 0;

}

做題時,先是在 c-free 上執行後每次都無限輸出 00000 搞不懂為什麼,後來除錯功能又死活啟動不了,終於在晚上時放棄了

對 c-free 的拯救,使用了 dev c++ 後順暢完成了任務,原來一直只是在 if 語句判斷的時候只寫了乙個等號,尷尬。寫這篇博

客也是希望以後不要再犯這種低階錯誤。。。

最後附上暴力迴圈解法:

#includeusing namespace std;

int main(){

for(int i=0;i<2;i++){

for(int j=0;j<2;j++){

for(int k=0;k<2;k++){

for(int m=0;m<2;m++){

for(int n=0;n<2;n++){

cout<

01字串 藍橋杯

對於長度為5位的乙個01串,每一位都可能是0或1,一共有32種可能。它們的前幾個是 00000 00001 00010 00011 00100 請按從小到大的順序輸出這32種01串。無輸出32行,按從小到大的順序每行乙個長度為5的01串。00000 00001 00010 00011 以下部分省略 ...

藍橋 01字串

include defint max 5 int f max int main if i j f j 1 for k 1 k 5 k printf d n a k for i 1 i 5 i include int a 32 int min 1 int b 34 int main for i 0 i...

藍橋杯 基礎練習 01字串

問題描述 對於長度為5位的乙個01串,每一位都可能是0或1,一共有32種可能。它們的前幾個是 請按從小到大的順序輸出這32種01串。輸入格式 本試題沒有輸入。輸出格式 輸出32行,按從小到大的順序每行乙個長度為5的01串。樣例輸出 00000 00001 00010 00011 以下部分省略 看見題...