zoukankan      html  css  js  c++  java
  • 【算法】n个人围成一圈报数,报到3的退出,下面接着从1开始报,问最后剩下的是谁?

    class Program
        {
            static void Main(string[] args)
            {
                List<int> array = new List<int>(600);
                for (int i = 1; i <= 600; i++)
                {
                    array.Add(i);
                }
                var circleList = new CircleArrayList<int>(array);
                int num = 0;
                while (true)
                {
                    if (circleList.Lengh == 1)
                    {
                        break;
                    }
                    num += 1;
                    if (num == 3)
                    {
                        circleList.Remove();
                        num = 0;
                    }
                    else
                    {
                        circleList.MoveNext();
                    }
                   
                }
                Console.WriteLine(circleList.Current);
                Console.ReadLine();
            }
        }

        public class CircleArrayList<T> : IEnumerator<T>
        {
            private List<T> interal;
            private int index = 0;

            public CircleArrayList(List<T> list)
            {
                this.interal = list;
            }

            public T Current
            {
                get { return interal[index]; }
            }

            public void Dispose()
            {
                return;
            }

            object System.Collections.IEnumerator.Current
            {
                get { return interal[index]; }
            }

            public bool MoveNext()
            {
                index += 1;
                if (index == interal.Count)
                    index = 0;
                return true;
            }

            public void Reset()
            {
                index = 0;
            }
            public void Remove()
            {
                interal.RemoveAt(index);
                if (index == interal.Count)
                    index = 0;
            }

            public int Lengh
            {
                get
                {
                    return interal.Count;
                }
            }
        }
  • 相关阅读:
    arcgis api 3.x for js 入门开发系列八聚合效果(附源码下载)
    arcgis api 3.x for js 入门开发系列七图层控制(附源码下载)
    arcgis api 3.x for js 入门开发系列六地图分屏对比(附源码下载)
    arcgis api 3.x for js 入门开发系列五地图态势标绘(附源码下载)
    arcgis api 3.x for js 入门开发系列四地图查询(附源码下载)
    Java里面获取当前服务器的IP地址
    Flutter at Google I/O 2018
    Modbus RTU 协议使用汇总
    plsql 创建表空间、用户、赋予权限
    Oracle:ODP.NET Managed 小试牛刀
  • 原文地址:https://www.cnblogs.com/end/p/2381519.html
Copyright © 2011-2022 走看看