最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript使用指針操作實現(xiàn)約瑟夫問題實例

 更新時間:2015年04月07日 15:41:18   作者:ishare  
這篇文章主要介紹了JavaScript使用指針操作實現(xiàn)約瑟夫問題,實例分析了javascript模擬數(shù)組指針操作的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下

本文實例講述了JavaScript使用指針操作實現(xiàn)約瑟夫問題的方法。分享給大家供大家參考。具體分析如下:

實現(xiàn)之前當(dāng)然要自己來編寫一些 JS 數(shù)組內(nèi)部指針的操作函數(shù),就像:reset(), current(), next(), prev(), search(), end() 這些函數(shù),我們都要來自己實現(xiàn),因為 JS 沒有內(nèi)置這些神奇的操作函數(shù)

Array.prototype.pointer = 0;//模擬數(shù)組內(nèi)部指針
//Reset 函數(shù),將數(shù)組內(nèi)部指針歸位(指向第一個元素)
var reset = function(arrayObj){
  if(!(arrayObj instanceof Array)){
    alert("Reset() 函數(shù)參數(shù)類型錯誤!請檢查輸入!");
    return;
  }
  arrayObj.pointer = 0;
}
//Current 函數(shù),返回數(shù)組內(nèi)部指針指向的當(dāng)前元素
var current = function(arrayObj){
  if(!(arrayObj instanceof Array)){
    alert("Current() 函數(shù)參數(shù)類型錯誤!請檢查輸入!");
    return;
  }
  return arrayObj[arrayObj.pointer];
}
//End 函數(shù),將數(shù)組內(nèi)部指針指向最后一個元素
var end = function(arrayObj){
  if(!(arrayObj instanceof Array)){
    alert("End() 函數(shù)參數(shù)類型錯誤!請檢查輸入!");
    return;
  }
  arrayObj.pointer = arrayObj.length - 1;
  return arrayObj[arrayObj.pointer];
}
//Next 函數(shù),將數(shù)組內(nèi)部指針下移一位
//如果已經(jīng)指向最后一個元素則返回 FALSE
var next = function(arrayObj){
  if(!(arrayObj instanceof Array)){
    alert("Next() 函數(shù)參數(shù)類型錯誤!請檢查輸入!");
    return;
  }
  arrayObj.pointer ++;
  if(typeof arrayObj[arrayObj.pointer] == 'undefined'){
    arrayObj.pointer --;
    return false;
  }
  return true;
}
//Prev 函數(shù),將數(shù)組內(nèi)部指針上移一位
//如果已經(jīng)指向第一個元素則返回 FALSE
var prev = function(arrayObj){
  if(!(arrayObj instanceof Array)){
    alert("Prev() 函數(shù)參數(shù)類型錯誤!請檢查輸入!");
    return;
  }
  arrayObj.pointer --;
  if(typeof arrayObj[arrayObj.pointer] == 'undefined'){
    arrayObj.pointer ++;
    return false;
  }
  return arrayObj[arrayObj.pointer];
}
//Unset 函數(shù),刪除指定的數(shù)組元素
var unset = function(index, arrayObj){
  if(!(arrayObj instanceof Array)){
    alert("Unset() 函數(shù)參數(shù)類型錯誤!請檢查輸入!");
    return;
  }
  if(typeof arrayObj[index] == 'undefined'){
    alert("Unset() 函數(shù)參數(shù) index 錯誤!不存在此元素!");
    return false;
  }
  arrayObj.splice(index, 1);
  return true;
}
//Search 函數(shù),通過數(shù)組鍵值返回數(shù)組的鍵名
var search = function(value, arrayObj){
  if(!(arrayObj instanceof Array)){
    alert("Search() 函數(shù)參數(shù)類型錯誤!請檢查輸入!");
    return;
  }
  for(index in arrayObj){
    if(arrayObj[index] == value){
      return index;
    }
  }
  return false;
}
//getKingMonkey 函數(shù),我們的約瑟夫主函數(shù),n 只猴子,數(shù)到 m
function getKingMonkey(n, m){
  a = new Array();
  for(i = 1; i <= n; i ++){
    a[i] = i;
  }
  a[0] = 0;unset(0, a);reset(a);
  while(a.length > 1){
    for(counter = 1; counter <= m; counter ++){
      if(next(a)){
        if(counter == m){
          unset(search(prev(a), a), a);
        }
      }else{
        reset(a);
        if(counter == m){
          unset(search(end(a), a), a);
          reset(a);
        }
      }
    }
  }
  return current(a);
}
alert("猴子大王的編號為:" + getKingMonkey(100, 17));

希望本文所述對大家的javascript程序設(shè)計有所幫助。

相關(guān)文章

  • 微信小程序時間選擇插件使用詳解

    微信小程序時間選擇插件使用詳解

    這篇文章主要為大家詳細(xì)介紹了微信小程序時間選擇插件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • JavaScript的查詢機制LHS和RHS解析

    JavaScript的查詢機制LHS和RHS解析

    這篇文章主要介紹了JavaScript的查詢機制LHS和RHS解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 原生JS和jQuery操作DOM對比總結(jié)

    原生JS和jQuery操作DOM對比總結(jié)

    這篇文章主要給大家介紹了原生JS和jQuery操作DOM的一些對比總結(jié),文中總結(jié)了很多的對比,相信對大家的學(xué)習(xí)或者工作能帶來一定的幫助,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • JavaScript數(shù)組去重的6個方法

    JavaScript數(shù)組去重的6個方法

    本篇文章主要介紹了JavaScript數(shù)組去重的6個方法。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • 100個不能錯過的實用JS自定義函數(shù)

    100個不能錯過的實用JS自定義函數(shù)

    本文收集了100個原生態(tài)JavaScript編寫的常用、實用自定義函數(shù),需要的朋友可以參考下
    2014-03-03
  • javascript仿京東導(dǎo)航左側(cè)分類導(dǎo)航下拉菜單效果

    javascript仿京東導(dǎo)航左側(cè)分類導(dǎo)航下拉菜單效果

    這篇文章主要為大家詳細(xì)介紹了javascript仿京東導(dǎo)航左側(cè)分類導(dǎo)航下拉菜單效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-03-03
  • JavaScript中更安全的URL讀寫方法總結(jié)

    JavaScript中更安全的URL讀寫方法總結(jié)

    URL對于開發(fā)人員來講,應(yīng)該是非常熟悉的東西了吧。這篇文章主要為大家詳細(xì)介紹了JavaScript中更安全的URL讀寫方法,希望對大家有所幫助
    2023-02-02
  • 詳解swipe使用及豎屏頁面滾動方法

    詳解swipe使用及豎屏頁面滾動方法

    這篇文章主要介紹了swipe使用及豎屏頁面滾動方法,本文通過實例代碼講解的非常詳細(xì),需要的朋友可以參考下
    2018-06-06
  • 用JavaScript實現(xiàn)PHP的urlencode與urldecode函數(shù)

    用JavaScript實現(xiàn)PHP的urlencode與urldecode函數(shù)

    這篇文章主要介紹了用JavaScript實現(xiàn)PHP的urlencode與urldecode函數(shù),很多情況下我們用了出來php urlencode出來的網(wǎng)址,需要的朋友可以參考下
    2015-08-08
  • JS實現(xiàn)隨機生成字符串(可指定長度)的示例代碼

    JS實現(xiàn)隨機生成字符串(可指定長度)的示例代碼

    本文主要介紹了JS實現(xiàn)隨機生成字符串(可指定長度)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08

最新評論

贵阳市| 东平县| 兖州市| 北安市| 三明市| 东安县| 新田县| 丹江口市| 喜德县| 天全县| 广安市| 正阳县| 菏泽市| 乌兰浩特市| 北京市| 日喀则市| 阜康市| 稻城县| 岳阳县| 南靖县| 桦南县| 八宿县| 万年县| 东宁县| 永仁县| 龙泉市| 昌宁县| 辽源市| 朔州市| 辉县市| 波密县| 陈巴尔虎旗| 安平县| 巫溪县| 永宁县| 伊春市| 枣阳市| 景东| 凤翔县| 镶黄旗| 竹山县|