应该是个算法问题,类似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]); }
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”个类型实参 那些错误是什么意思?
结果 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);
算法如下: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]);
}
控件名.Text += List[a - 1].ToString() + " "; //空格作为分隔符方法2:每次循环,赋值给指定变量;最后赋值给控件
strTemp += "," + List[a - 1].ToString(); //逗号作为分隔符...控件名.Text = strTemp.SubString(1);
{
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”个类型实参
那些错误是什么意思?
这个又怎么改?
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();
}