“蓝桥杯”基础练习:01字串
生活随笔
收集整理的這篇文章主要介紹了
“蓝桥杯”基础练习:01字串
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述
00001
00010
00011
<以下部分省略>
對于長度為5位的一個01串,每一位都可能是0或1,一共有32種可能。它們的前幾個是:
00000
00001
00010
00011
00100
請按從小到大的順序輸出這32種01串。
輸入格式 本試題沒有輸入。 輸出格式 輸出32行,按從小到大的順序每行一個長度為5的01串。 樣例輸出 0000000001
00010
00011
<以下部分省略>
因為要從00000輸出到11111,一共32行5列,一開始想著就開一個這么大的二維數組吧,挨個的更新每行元素就行唄,結果沒我想的這么簡單,因為下一行總是和前一行息息相關,而且在下一行沒處理之前,它必須和上一行的數相同,要經常更新行元素。 比如一開始賦值全部為00000,當加一以后第二行變為00001,可是這時候第三行元素還仍然是00000呢,要在00001的基礎上加1,它必須和上一行(第二行)元素相等才可以。后來一想,不用這么麻煩,既然需要更新,那就用一個s[5] 的簡單數組來自己更新不就得了,加上31次,就這樣。
代碼:
#include <iostream> #include <string.h> using namespace std; int two[6];int main() {memset(two,0,sizeof(two));cout<<"00000"<<endl;for(int i=1;i<=31;i++){two[5]++;if(two[5]==2){two[4]++;two[5]=0;}if(two[4]==2){two[3]++;two[4]=0;}if(two[3]==2){two[2]++;two[3]=0;}if(two[2]==2){two[1]++;two[2]=0;}for(int m=1;m<=5;m++)cout<<two[m];cout<<endl;}return 0; }轉載于:https://www.cnblogs.com/sr1993/p/3697798.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的“蓝桥杯”基础练习:01字串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Jdom2将一个xml文件添加到另一
- 下一篇: JavaScript精简代码 非一般的写