int N = 3;
for (int i = 0; i < (1 << N); i++)
{
    Console.WriteLine(string.Format("{0:D3}", Convert.ToInt32(Convert.ToString(i, 2))));
}

解决方案 »

  1.   


    int N = 5;
    for (int i = 0; i < (1 << N); i++)
    {
        Console.WriteLine(string.Format("{0:D"+ N +"}", Convert.ToInt32(Convert.ToString(i, 2))));
    }
    呵呵,不好意思,刚才漏了个细节
      

  2.   

    public void PrintAll(int n)
                {
                    if (n > 0)
                    {
                        double row = Math.Pow(2, n);
                        for (int i = 0; i < row ; i++)
                        {
                            int shang = i;
                            for (int j = 0; j < n; j++)
                            {
                                int yushu = shang % 2;
                                shang /= 2;
                                if (shang != 0)
                                    PrintOne(yushu, false);
                                else
                                {
                                    if (j == n - 1)
                                        PrintOne(yushu, true);
                                    else
                                        PrintOne(yushu, false);
                                }
                            }
                        }
                    }
                }            private void PrintOne(int n, bool line)
                {
                    if (!line)
                        Console.Write(n + " ");
                    else
                        Console.WriteLine(n);
                }
    测试通过,不过还没有考虑到效率的问题,当n比较大时计算的时间就很长了
      

  3.   


    int N = 10;
    List<int> list = new List<int>; //存放所有的结果
    for(int i=0; i<N; i++)
    {
      list.Add(Convert.ToInt32(i.ToString(),2);
    }
      

  4.   


            private void button1_Click(object sender, EventArgs e)
            {
                //Form1 frm = new Form1();
                //frm.TopLevel = false;
                //this.panel1.Controls.Add(frm);
                //frm.Dock = DockStyle.Fill;
                //frm.Show();
                //MessageBox.Show(B.Y.ToString());//A.X.ToString() +
                List<string > s = CaculateNumber(5);
                s.Sort();
                foreach (string str in s)
                {
                    MessageBox.Show(str);
                }
            }        private List<string> CaculateNumber(int n)
            {
                List<string> s = new List<string>();
                if (n == 1)
                {
                    s.Add("0");
                    s.Add("1");
                }
                else
                {
                    for (int i = 0; i < 2; i++)
                    {
                        foreach (string str in CaculateNumber(n - 1))
                        {
                            s.Add(str + i.ToString());
                        }
                    }
                }
                return s;
            }
      

  5.   


     private void button1_Click(object sender, EventArgs e)
            {
                //Form1 frm = new Form1();
                //frm.TopLevel = false;
                //this.panel1.Controls.Add(frm);
                //frm.Dock = DockStyle.Fill;
                //frm.Show();
                //MessageBox.Show(B.Y.ToString());//A.X.ToString() +
                List<string > s = CaculateNumber(5);
                //s.Sort();
                foreach (string str in s)
                {
                    MessageBox.Show(str);
                }
            }        private List<string> CaculateNumber(int n)
            {
                List<string> s = new List<string>();
                if (n == 1)
                {
                    s.Add("0");
                    s.Add("1");
                }
                else
                {
                    foreach (string str in CaculateNumber(n - 1))
                    {
                        for (int i = 0; i < 2; i++)
                        {
                            s.Add(str + i.ToString());
                        }
                    }
                }
                return s;
            }
      

  6.   


    int N = 20;
    for (int i = 0; i < (1 << N); i++)
    {
        Console.WriteLine(string.Format("{0:D"+ N +"}", Convert.ToUInt64(Convert.ToString(i, 2))));
    }
    这样可以稍微大点你的方法答案不对when n = 500000
    10000
    01000
    11000
    00100
    10100
    01100
    11100
    00010
    10010
    01010
    11010
    00110
    10110
    01110
    11110
    00001
    10001
    01001
    11001
    00101
    10101
    01101
    11101
    00011
    10011
    01011
    11011
    00111
    10111
    01111
    11111
    请按任意键继续. . .
      

  7.   

    int N = 20;
               for (int i = 0; i < (1 << N); i++)
               {
                   Console.WriteLine(Convert.ToString(i,2).PadLeft(N,'0'));
                   
               }%>