本帖最后由 caozhy 于 2011-05-06 00:19:05 编辑

解决方案 »

  1.   

    应该是个算法问题,类似n个猴子围成一圈,从1开始报数,报到m就淘汰,一直到只剩一个猴子吧,
    算法如下:static void Fun(int n,int m)
            {
                List<int> list = new List<int>();
                for (int i = 0; i < n; i++)
                {
                    list.Add(i+1);
                }            Console.Write("开始报数,淘汰的猴子顺序为:");
                int a = 0, c = 0;
                do
                {
                    c++;
                    a = (a + m) % list.Count == 0 ? list.Count : (a + m) % list.Count;
                    Console.Write("{0},", list[a - 1]);
                    list.RemoveAt(a-1);
                    a--;
                }
                while (list.Count > 1);
                Console.WriteLine();
                Console.WriteLine("国王是:{0}", list[0]);
            }
      

  2.   

    约瑟夫环,动态规划...f(n,k) = (f(n − 1,k) + k)mod n,f(1,k) = 0谁说数学没有用?好好补习一下高等数学吧...
      

  3.   

    方法1:每次循环,直接给控件赋值:
    控件名.Text += List[a - 1].ToString() + " "; //空格作为分隔符方法2:每次循环,赋值给指定变量;最后赋值给控件
    strTemp += "," + List[a - 1].ToString(); //逗号作为分隔符...控件名.Text = strTemp.SubString(1);
      

  4.   

    本帖最后由 caozhy 于 2011-05-06 00:24:23 编辑
      

  5.   

     private void button1_Click(object sender, EventArgs e)
            {
                int n, m;
                n = int.Parse(textBox1.Text);
                m = int.Parse(textBox2.Text);
                List<int> list = new List<int>();
                for (int i = 0; i < n; i++)
                {
                    list.Add(i + 1);
                }
                int a = 0, c = 0;
                do
                {
                    c++;
                    a = (a + m) % list.Count == 0 ? list.Count : (a + m) % list.Count;
                    Console.Write("{0},", list[a - 1]);
                    list.RemoveAt(a - 1);
                    a--;
                }
                while (list.Count > 1);
                textBox3.Text = list[0].ToString ;
                label5.Text += List[a - 1].ToString() + " ";         }
    错误 1 无法将方法组“ToString”转换为非委托类型“string”。您是要调用方法吗?
    错误 2 使用泛型 类型“System.Collections.Generic.List<T>”需要“1”个类型实参
    那些错误是什么意思?
      

  6.   

    还有一点:不好意思,那个变量list的首字母应该是小写的
      

  7.   

    错误 2 使用泛型 类型“System.Collections.Generic.List<T>”需要“1”个类型实参 
    这个又怎么改?
      

  8.   

    结果
     private void button1_Click_1(object sender, EventArgs e)
            {
                int n, m;
                n = int.Parse(textBox1.Text);
                m = int.Parse(textBox2.Text);
                List<int> list = new List<int>();
                int j = 0;
                for (int i =1; i <= n; i++)
                {
                    list.Add(i);
                }
                for (int i = 0; list.Count > 1; i++)
                {
                    if (i == list.Count)
                    {
                        i = 0;
                    }
                    j++;
                    if (j == m)
                    {
                        list.RemoveAt(i);
                        
                        j = 0;
                        i--;
                        
                    }              }
                
                    textBox3.Text = list[0].ToString();
                    label5.Text += list[j ].ToString() + " ";           
            }        private void button2_Click(object sender, EventArgs e)
            {
                textBox1.Clear();
                textBox2.Clear();
            }        private void button3_Click(object sender, EventArgs e)
            {
                this.Close(); 
            }