經過了一天的虐心歷程,我終於下定決心開始寫部落格記錄我的做題過程,今天做的是藍橋杯試題集裡的第二題《 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 以下部分省略 看見題...