d471

輸入說明 :

每行一個數字 n ( 0 < n < 15 )

代表 n 個bit

輸出說明 :

請參考範例輸出

每個n,可以表達的數字有2的n次方個

從0~2的n次方 把每個數從10進位轉成2進位,印出來

#include<stdio.h>
#include<math.h>
void Transdigit(int[],int);
void PrintDigit(int [],int);
int main()
{
    int i,limit,n;

    while(scanf("%d",&n)!=EOF)
    {
        limit=pow((double)2,(double)n);
        for(i=0;i<limit;i++)
        {
            int array[15]={0};
            Transdigit(array,i);
            PrintDigit(array,n);
            printf("\n");
        }   printf("\n");
    }
return 0;
}

void Transdigit(int array[15],int number)
{
    int k=0;
    while(number)
    {
        array[k]=number%2;
        number/=2;
        k++;
    }    
}

void PrintDigit(int array[],int n)
{  
   int j;
   for(j=n-1;j>=0;j--)
   {
      printf("%d",array[j]);
   }

}