.net c# 从总人数中,第N个位置,间隔N人开始出列算法

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

从第start人开始计数,以alter为单位循环记数出列,总人数为total

        public int[] Jose(int total, int start,int alter)
        {
            int j, k = 0;
            //count数组存储按出列顺序的数据,以当结果返回 
            int[] count = new int[total + 1];
            //s数组存储初始数据 
            int[] s = new int[total + 1];
            //对数组s赋初值,第一个人序号为0,第二人为1,依此下去
            for (int i = 0; i < total; i++)
            {
                s[i] = i;
            }
            //按出列次序依次存于数组count中 
            for (int i = total; i >= 2; i--)
            {
                start = (start + alter - 1) % i;
                if (start == 0)
                    start = i;
                count[k] = s[start];
                k++;
                for (j = start + 1; j <= i; j++)
                    s[j - 1] = s[j];
            }
            count[k] = s[1];
            //结果返回 
            return count;
        }

其中,total为总人数,n为第N个位置,m为每隔M人一个出列。

接下来,我们要使用一个循环结构来实现算法。由于我们需要从第n个位置开始,因此循环的初始值应该是(n-1)。而且,由于每隔m人一个出列,因此循环的步长应该是m。

public static void OutList(int total, int n, int m)
{
    int[] array = new int[total];
    for (int i = 0; i < total; i++)
      array[i] = i + 1;

    Console.WriteLine($"总人数:{total},第{m}个位置,每隔{m}人一个出列。");

    int index = n - 1;
    for (int i = 0; i < total - n + 1; i++)
    {
      Console.Write($"{array[index]}  ");
      array[index] = -1;
      int count = 0;
      while (count < m)
      {
        index = (index + 1) % total;
        if (array[index] != -1)
          count++;
      }
    }
    Console.ReadLine();
}


经过这样的操作,我们就可以得到想要的结果。

除此之外,我们还可以添加更多的调试信息来帮助我们更好的了解代码的运行情况。例如,在输出时,我们可以添加每个人的位置信息,这样可以更好的了解每个人在最终的出队顺序中的位置。

附件:下载该文件资源,减少时间成本(增值服务)
不商用,只限学习使用,使用后请删除
上传者拥有该资源完整版权,下载既表明已授权您可以进行报备商用,无报备或者使用后报备,视为侵权,报备后使用,为合法有效使用,报备方式,下载后,在下载列表,点击报备,填写使用场景即可
File Source
.rar
215.89 KB
文件部分展示图(单击放大)
.net c# 从总人数中,第N个位置,间隔N人开始出列算法.net c# 从总人数中,第N个位置,间隔N人开始出列算法
留言
该资源可下载
File Source
.rar
215.89 KB
.net c# 从总人数中,第N个位置,间隔N人开始出列算法.net c# 从总人数中,第N个位置,间隔N人开始出列算法
最新结算
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
HTML5实现CSS滤镜图片切换特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery+css3实现信封效果
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章