java-约瑟夫环问题
2017-08-02 10:44
204 查看
方法一:
结果显示:
package dataStructure.linearList; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Yue { public static void main(String[] args) { // Scanner scanner = new Scanner(System.in); // System.out.print("请输入总人数:"); // int totalNum = scanner.nextInt(); // System.out.print("请输入报数的大小:"); // int cycleNum = scanner.nextInt(); // System.out.print("请输入开始编号:"); // int startNO= scanner.nextInt(); // yuesefu(totalNum, cycleNum,startNO); yuesefu(20, 8,3); } public static void yuesefu(int totalNum, int countNum,int startNO) { // 初始化人数 List<Integer> start = new ArrayList<Integer>(); for (int i = 1; i <= totalNum; i++) { start.add(i); } //从下标为K开始计数 int k = startNO-1; while (start.size() >0) { System.out.println(start); //第m人的索引位置 k = (k + countNum) % (start.size()) - 1; // 判断是否到队尾 到队尾时候k=-1 if (k < 0) { System.out.println(start.get(start.size()-1)); start.remove(start.size() - 1); k = 0; } else { System.out.println(start.get(k)); start.remove(k); } } } }
结果显示:
[1, 2, 3, 4, 5] 4 [1, 2, 3, 5] 1 [2, 3, 5] 3 [2, 5] 2 [5] 5
相关文章推荐
- 约瑟夫环问题(丢手帕游戏)Java 链表实现
- Java程序练习-约瑟夫环问题
- 用java实现链表并解决约瑟夫环问题
- 使用顺序表求解约瑟夫环问题 (利用java中的ArrayList)
- java实现约瑟夫环问题
- 使用单链表求解约瑟夫环问题 (利用java中的LinkedList)
- 约瑟夫环问题--java
- 用java实现约瑟夫环问题
- 约瑟夫环问题 java代码实现(高效率)
- 循环列表的Java实现,解决约瑟夫环问题
- java用list实现约瑟夫环问题
- Java语言解决约瑟夫环问题(ArrayList实现)
- Java语言解决约瑟夫环问题(链表实现)
- 约瑟夫环问题-java实现
- java实现简单的约瑟夫环问题(二)
- Java 约瑟夫环问题解决方案
- Java程序练习-约瑟夫环问题
- 约瑟夫环与二叉树问题java
- 一个Java面试题(约瑟夫环问题)
- 赌博算法之约瑟夫环问题(JAVA)