猴子选大王 (约瑟夫环)(c#)

时间:2023-01-17 20:42:17

猴子选大王问题:

一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1到m的顺序围坐一圈,

从第1开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
猴子总数M:<asp:TextBox ID="hzz" runat="server"></asp:TextBox>
出列的猴子N:<asp:TextBox ID="clhz" runat="server"></asp:TextBox>
<asp:Button runat="server" ID="sa" Text="猴子选大王" OnClick="sa_Click" />
猴子大王:<asp:TextBox ID="hzdw" Enabled="false" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>

Default.aspx

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void sa_Click(object sender, EventArgs e)
{
int M = Convert.ToInt32(hzz.Text.Trim()); //总猴子数 M
int N = Convert.ToInt32(clhz.Text.Trim()); //出来的猴子 N //总猴子数 M ,数到第 N 个排除。
int k = ;
for (int i = ; i <= M; i++)
{
k = (k + N) % i;
}
hzdw.Text = Convert.ToString(k + );//猴子大王
}
}

Default.aspx.cs

结果如下:

猴子选大王 (约瑟夫环)(c#)