猴子选大王
猴子选大王啊。。
using System;
using System.Collections.Generic;
using System.Text;
namespace Monkey

{
class Program
{
static void Main(string[] args)
{
int num;
num=Monkey(3, 1, 2);
Console.WriteLine(num);
Console.ReadKey();
}
static int Monkey(int sum, int diJiGe, int shuDaoJi)
{
//sum代表共多少只猴子,diJiGe代表从第几个开始数,shuDaoJi代表数到几开始淘汰
int paiChu=0;
//paiChu代表共排除了多少只猴子
int i =diJiGe - 1;
//数组从0开始
int k = 0;
//计数,最大为shuDaoJi
int [] myMonkey=new int [sum];
//构建数组。首先全都是0,当数到shuDaoJi时把其设置为1.如果没有淘汰就为0
//直到剩余一个0为止
while ((sum - paiChu) != 1)
{
//当剩余一个0时推出while循环
if (myMonkey[i] == 0)
{
k = k + 1;
if (k == shuDaoJi)
{
//当数到k时开始进入if循环,设置当前的数组的数字为0
myMonkey[i] = 1;
//设置为0
k = 0;
//
paiChu = paiChu + 1;
}
}
i = i + 1;
//循环数组,当进行到最后,在重复进行循环,该第一个猴子开始数数。
if (i > (sum - 1))
i = 0;
}
int m=0;
//返回是第几只猴子被选为了大王
for (int j = 0; j < myMonkey.Length; j++)
{
if (myMonkey[j] == 0)
m = i;
}
return m+1;
}
}
}

浙公网安备 33010602011771号