zoukankan      html  css  js  c++  java
  • 约瑟夫环问题

    今天在做面试题时,用递归解决了约瑟夫环问题;

    =======================================================================================

    public class Test extends Sprite {

    /**存储当前人数*/

    private var arr:Array = [];

    /**总人数*/

    private static const TOTAL:int = 10;

    /**间隔*/

    private static const NUM:int = 3;

    /**初始位置*/

    private var startIndex:int = 0;

    public function Test() {

    initArr();

    find(startIndex);

    }

    /**初始化数组*/

    private function initArr():void{

    arr = [];

    for (var i:int = 1; i <= TOTAL; i++){

    arr.push(i);

    }

    }

    /**从指定的index处开始查找第NUM个数*/

    private function find(index):int{

    if ( arr.length > 1){

        var i:int = (index + NUM - 1) % arr.length;

        trace("出队序号:" + arr[i]);

        resetArr(i);

        return find(i);

    }else{

         trace("最后一个:" + arr[0]);

         return 0;

           }

    }

    /**去掉被踢出的人*/

    private function resetArr(index:int):void{

    for (var i:int = index; i < arr.length-1; i++){

    arr[i] = arr[i+1];

    }

    arr.pop();

    }

    }

  • 相关阅读:
    jPlayer
    nodemon
    微信
    防盗链
    ES2015 (ES6)
    静态资源
    WebP
    Retina
    ui-grid
    React入门2
  • 原文地址:https://www.cnblogs.com/maomaolw3/p/4951629.html
Copyright © 2011-2022 走看看