static void Main( )
{ const int MaxSize = 50; //假设猴子最多为50只;
int m,n,d,i,count; //n代表猴子数目,m代表报到m号的淘汰;
int [] A=new int[MaxSize]; Console.Write("输入猴子个数n:");
n=int.Parse ( Console.ReadLine());
Console.Write("输入要淘汰的报号m:");
m = int.Parse(Console.ReadLine());
for (i=0;i<n;i++) A[i]=i+1; //给猴子们编号
Console.WriteLine ("出队前:");
for (i=0;i<n;i++)
Console.Write(A[i]+" ");
Console.WriteLine(); Console.WriteLine("出队后:");
count = 0;
d = 0; /*d记录退出圈外的猴子个数*/
while (n > 0)
for (i = 0; i < n; i++)
if (A[i] != 0)
{
count++;
if (count == m)
{
Console.Write(A[i] + " ");
A[i] = 0; /*元素值清0*/
count = 0; /*计数器重置0*/
d++;
n--;
}
}
}
{ const int MaxSize = 50; //假设猴子最多为50只;
int m,n,d,i,count; //n代表猴子数目,m代表报到m号的淘汰;
int [] A=new int[MaxSize]; Console.Write("输入猴子个数n:");
n=int.Parse ( Console.ReadLine());
Console.Write("输入要淘汰的报号m:");
m = int.Parse(Console.ReadLine());
for (i=0;i<n;i++) A[i]=i+1; //给猴子们编号
Console.WriteLine ("出队前:");
for (i=0;i<n;i++)
Console.Write(A[i]+" ");
Console.WriteLine(); Console.WriteLine("出队后:");
count = 0;
d = 0; /*d记录退出圈外的猴子个数*/
while (n > 0)
for (i = 0; i < n; i++)
if (A[i] != 0)
{
count++;
if (count == m)
{
Console.Write(A[i] + " ");
A[i] = 0; /*元素值清0*/
count = 0; /*计数器重置0*/
d++;
n--;
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货