20100128_1 约瑟夫环

namespace __4_CS
{
    //约瑟夫环的关键问题,下一个删除的位置 :(t+m-1) % i
    //t : 上次出列的位置,初始化为0
    //m: 第m个要出去
    //i :当期数组的长度
    //-1 : 从0开始的数组
    class josephus_cycle
    {
       
        //values; //约瑟夫环的原始数据
        //i   约瑟夫环中还剩下的数据个数
        //t  上一个被踢出的兄弟的index
        //m 约瑟夫环的m,第m个兄弟要被踢出
        static public void josephus_begin(int[] beginValue,int m,int i)
        {//关键(t+m-1) % i  ,当没有数据的时候结束
            int t = 0; //上一个被踢出的兄弟的index,t初始化为0
            while(i>0)
            {
                t  = (t + m -1) % i;
                Console.Write("{0},",beginValue[t]);
                for(int j=t+1;j<i;j++)
                {
                    beginValue[j-1] = beginValue[j];
                }
                i--; //元素个数少了1
            }

        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值