格雷码(分治)

来源:互联网 发布:sql不包含某个字符串 编辑:程序博客网 时间:2024/06/05 01:11
#include <stdio.h>#include <iostream>#include <string.h>using namespace std;char a[20]; //保存每个格雷码串int n;  //每个格雷码串的长度void dfs(int k){    if (k == n)    {        printf("%s\n", a);        return ;    }    dfs(k+1);    a[k] = '0' + '1' - a[k];    //将第k位取反    dfs(k+1);}int main(){    while (cin >> n && n > 0)    {        memset(a, '0', sizeof a);        a[n] = '\0';        dfs(0);        printf("\n");    }    return 0;}

0 0
原创粉丝点击