丢手帕问题as3版

N个孩子围成一圈报数,报到M的退出,剩下的再从1继续报数,报到M的再退出,一直持续到只剩一个人,问剩下的是哪个?

package
{
    import flash.display.Sprite;
    
    public class dsp extends Sprite
    {
        public function dsp()
        {
            //总人数
            var n:Number=9;
            
            //将所有放进数组
            var arr:Array=[];
            for (var i:int = 1; i <= n; i++) 
            {
                arr.push(i);
            }
            
            //定义变量记录当前数组的指针
            var startIndex:int=1;
            
            //定义变量记录所有的数量
            var times:int=1;
            
            //定义变量声明每几个孩子退出一个
            var m:int=4;
            while(arr.length>1){
            
                if(times%m==0){
                    arr.splice(startIndex,1);
                    startIndex--;
                }
                startIndex++;
                times++;
                if(startIndex==arr.length){
                    startIndex=0;
                }
            }
            trace(arr);
            trace(times);
        }
    }
}

 

posted @ 2013-09-01 21:03  ywl01  阅读(171)  评论(0编辑  收藏  举报