問題描述
對于長度為5位的一個01串,每一位都可能是0或1,一共有32種可能,它們的前幾個是:
00000
00001
00010
00011
00100
請按從小到大的順序輸出這32種01串,
輸入格式 本試題沒有輸入, 輸出格式 輸出32行,按從小到大的順序每行一個長度為5的01串, 樣例輸出 0000000001
00010
00011
<以下部分省略> 代碼:
#include <stdio.h>
#include <stdlib.h>
int main() {
int i,j,k;
for(i=0;i<32;i++)
{
int m=i%32;
int a[5];
for(j=4;j>=0;j--)
{
a[j]=m%2;
m=m/2;
}
for(k=0;k<5;k++)
{
printf("%d",a[k]);
}
printf("\n");
}
return 0;
}
思考:
我一開始想的很麻煩otz想一個二維陣列前面放個數后面放字串?后面懵了很久感覺很麻煩的亞子
倒回去看題目就暴力解決了 直接輸出0-31 相當于這題本質轉化成十進制化二進制
我居然一開始不會轉化!!還是自己手算了一個數才反應過來用除2和2取余實作otz基礎課被忘到狗肚子了去了
之后沒有動腦,,無腦輸出陣列了(= =!
這里有個點在輸出一個數的時候 本來不想多加輸出回圈 輸出陳述句直接放在第一個5回圈里 但地址用a[4-j]的時候第一個數00000第一位0出不來 變成了4?但偷懶了沒細想改了個輸出回圈,,
看看以后還會不會碰到先
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/52980.html
標籤:C
上一篇:C語言筆記 16_標準庫&stdio&stdlib&string&time
下一篇:楊輝三角(C語言)
