日期:2014-05-17  浏览次数:20756 次

小弟数学不好。。。肿么办?
孤岛上的N(16<N<32)个人一致通过以下方式减少生存人数:坐成一圈(位置记为0到N-1)并从第一个人开始报数,报到M(2<M<10)的人会被杀死,直到最后一个。为了生存下去,某人拿出了您设计好的这段程序,基于N和M两个参数计算出了最终存活的位置。
求大哥们帮个忙。。。。不帮就甭骂了。。我也是实在没办法才脸皮厚的这样,当初数学课不怎么上我错了。。

------解决方案--------------------

private void button2_Click(object sender, EventArgs e)
        {
            int n = 20;  //N(16<N<32)
            int m = 5;  //M(2<M<10)
            string s = "";
            for (int i = 0; i < n; i++)
            {
                s += i.ToString() + ",";
            }
            string str = getCount2(s, m, n, n);
            MessageBox.Show(str);
        }

        private string getCount2(string s, int m, int n, int len)  //杀掉1个后下一个重新开始报数
        {
            if (16 < n && n < 32 && 2 < m && m < 10)
            {
            }
            else
            {
                return "N(16<N<32),M(2<M<10)";
            }
            bool bl = false;
            string ss = "";
            string s1 = "";
            string s2 = "";
            textBox1.Text += s + "\r\n";  //枪毙过程
            string[] list = s.Split(',');
            for (int i = 0; i < len; i++)
            {
                if (len < m)
                {
                    if (i + 1 ==&nbs