欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

代碼詳解Java猴子選王問題(約瑟夫環(huán))

 更新時間:2018年02月26日 09:51:30   作者:彬菌  
本篇文章通過實例給大家分析了java約瑟夫環(huán)這個經(jīng)典內(nèi)容,有興趣的跟著小編一起學習下吧。

關于約瑟夫環(huán)的基本知識:

羅馬人攻占了喬塔帕特,41人藏在一個山洞中躲過了這場浩劫。這41個人中,包括歷史學家josephus和他的一個朋友。剩余的39個人為了表示不向羅馬人屈服,決定集體自殺。大家決定了一個自殺方案,所有這41人圍城一個圓圈,由第一個人開始順時針報數(shù),沒報數(shù)為3的人就立刻自殺,然后由下一個人重新開始報數(shù)仍然是每報數(shù)為3的人就立刻自殺,......,知道所有人都自殺死亡為止.約瑟夫和他的朋友并不想自殺,于是約瑟夫想到了一個計策,他們兩個同樣參數(shù)到自殺方案中,但是最后卻躲過了自殺。請問是怎么做到的

代碼分享:

import java.util.HashMap; 
import java.util.Map; 
public class MonkeyKing { 
  public static void main(String args[]) { 
    int n = 100; // 猴子總數(shù) 
    int m = 3; // 報數(shù)出局數(shù) 
    @SuppressWarnings("rawtypes") 
    Map map = new HashMap(); 
    int nn = 1; // 報數(shù)序號 
    int mm = 1; // 報數(shù)號 
    System.out.println("-----------------------" + n + "只猴子選大王開始-----------------------"); 
    for (int i = 1; i < n + 1; i++) { 
      map.put(i, i); 
    } 
    while (map.size() > 1) { 
      if (mm == 3) { 
        map.remove(nn); 
      } 
      nn++; 
      if (nn == n + 1) { 
        nn = 1; 
      } 
      if (map.get(nn) != null) { 
        mm++; 
      } 
      if (mm == m + 1) { 
        mm = 1; 
      } 
    } 
    String result = map.values().toString(); 
    System.out.println("第" + result.substring(1, result.length() - 1) + "只猴子當選猴王"); 
  } 
}

相關文章

  • SpringBoot定時任務兩種(Spring Schedule 與 Quartz 整合 )實現(xiàn)方法

    SpringBoot定時任務兩種(Spring Schedule 與 Quartz 整合 )實現(xiàn)方法

    本篇文章主要介紹了SpringBoot定時任務兩種(Spring Schedule 與 Quartz 整合 )實現(xiàn)方法,詳細的介紹了Spring Schedule 與 Quartz 整合的兩種方法,有興趣的可以了解一下。
    2017-03-03
  • 升級springboot3之自動配置導入失效問題及解決

    升級springboot3之自動配置導入失效問題及解決

    這篇文章主要介紹了升級springboot3之自動配置導入失效問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • SpringBoot動態(tài)更新yml文件

    SpringBoot動態(tài)更新yml文件

    在系統(tǒng)運行過程中,可能由于一些配置項的簡單變動需要重新打包啟停項目,這對于在運行中的項目會造成數(shù)據(jù)丟失,客戶操作無響應等情況發(fā)生,針對這類情況對開發(fā)框架進行升級提供yml文件實時修改更新功能,這篇文章主要介紹了SpringBoot動態(tài)更新yml文件
    2023-01-01
  • IDEA無法使用Git?Pull的問題

    IDEA無法使用Git?Pull的問題

    本文主要介紹了IDEA無法使用Git?Pull的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • Spring Boot 中常用的注解@RequestParam及基本用法

    Spring Boot 中常用的注解@RequestParam及基本用法

    @RequestParam 是 Spring Framework 和 Spring Boot 中常用的注解之一,用于從請求中獲取參數(shù)值,本文給大家介紹Spring Boot 中常用的注解@RequestParam,感興趣的朋友一起看看吧
    2023-10-10
  • Java中二叉樹的建立和各種遍歷實例代碼

    Java中二叉樹的建立和各種遍歷實例代碼

    這篇文章主要介紹了Java中二叉樹的建立和各種遍歷實例代碼,涉及樹節(jié)點的定義,后序遍歷,層序遍歷,深度優(yōu)先和廣度優(yōu)先等相關內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • struts1登錄示例代碼_動力節(jié)點Java學院整理

    struts1登錄示例代碼_動力節(jié)點Java學院整理

    這篇文章主要介紹了struts1登錄示例代碼,需要的朋友可以參考下
    2017-08-08
  • Java中自定義注解類及使用實例解析

    Java中自定義注解類及使用實例解析

    這篇文章主要介紹了Java中自定義注解類并使用過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • 詳解MybatisPlus中@Version注解的使用

    詳解MybatisPlus中@Version注解的使用

    在MyBatisPlus中,常常使用@Version實現(xiàn)樂觀鎖,該注解用于字段上面。本文將通過示例詳細講解@Version注解的使用,感興趣的可以了解一下
    2022-06-06
  • Java生成word文檔的示例詳解

    Java生成word文檔的示例詳解

    這篇文章主要為大家詳細介紹了如何利用Java語言生成word文檔,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的小伙伴可以參考一下
    2022-12-12

最新評論