产生n bit所有可能的序列

void binary(int n)
{
    if(n < 1)
        printf("%s\n",A);    // Assume A is a global variable
    else
    {
        A[n-1] = '0';
        binary(n-1);
        A[n-1] = '1';
        binary(n-1);
    }
}

n=4时输出如下:

0000
1000
0100
1100
0010
1010
0110
1110
0001
1001
0101
1101
0011
1011
0111
1111

完整代码:

#include<stdio.h>
#include<stdio.h>
char A[4];

/*
Code obtained from

http://www.studyalgorithms.com
*/

void binary(int n)
{
    if(n < 1)
        printf("%s\n",A);    // Assume A is a global variable
    else
    {
        A[n-1] = '0';
        binary(n-1);
        A[n-1] = '1';
        /*
        Feel free to copy but please acknowledge studyalgorithms.com
        */
        binary(n-1);
    }
}

int main(void)
{
    binary(4);
    return 0;
}
posted @ 2015-08-08 17:58  programnote  阅读(217)  评论(0编辑  收藏  举报