我需要完成这样的功能:
假如给出的数是2,
那么通过程序需要得到
00
01
10
11
也就是输入是N,输出是N位二进制形式的所有可能组合.
拜托大家帮着想想办法!

解决方案 »

  1.   

    f(n, str)
    {
      if(n==0)
      {
          str[n] = "0";
          sprintf("%s", str);
          str[n] = "1";
          sprintf("%s", str);
       }
       else
       {
           str[n] = "0";
           f(n-1, str);
           str[n] = "1";
           f(n-1, str);
        }
    }
      

  2.   

    char * a = new char[N];// 全局的,懒得传参数了。void A(int n)
    {
        if (n)
        {
            a[N-n] = '1';
            A(n - 1);
            a[N-n] = '0';
            A(n - 1);
        }
        else
        {
            a[N] = '1';
            printf ("%s", a);
            a[N] = '0';
            printf ("%s", a);
        }
    }
      

  3.   

    汗~~~该死的csdn服务器~~~还我分来~~~