您好,欢迎来到星星旅游。
搜索
您的当前位置:首页约瑟夫环的java实现

约瑟夫环的java实现

来源:星星旅游
约瑟夫环的java实现

约瑟夫环:已知n个⼈(以编号1,2,3...n分别表⽰)围坐在⼀张圆桌周围。从编号为k的⼈开始报数,数到m的那个⼈出列;他的下⼀个⼈⼜从1开始报数,数到m的那个⼈⼜出列;依此规律重复下去,直到圆桌周围的⼈全部出列。直接给出代码,欢迎拍砖。

1 package com.timeng; 2

3 import java.util.ArrayList; 4 import java.util.List;

5 import java.util.Scanner; 6

7 public class Yue {

8 public static void main(String[] args) {

9 Scanner scanner = new Scanner(System.in); 10 System.out.print(\"请输⼊总⼈数:\"); 11 int totalNum = scanner.nextInt();

12 System.out.print(\"请输⼊报数的⼤⼩:\"); 13 int cycleNum = scanner.nextInt(); 14 yuesefu(totalNum, cycleNum); 15 } 16

17 public static void yuesefu(int totalNum, int countNum) { 18 // 初始化⼈数

19 List start = new ArrayList(); 20 for (int i = 1; i <= totalNum; i++) { 21 start.add(i); 22 }

23 //从第K个开始计数 24 int k = 0;

25 while (start.size() >0) { 26 k = k + countNum; 27 //第m⼈的索引位置

28 k = k % (start.size()) - 1; 29 // 判断是否到队尾 30 if (k < 0) {

31 System.out.println(start.get(start.size()-1)); 32 start.remove(start.size() - 1); 33 k = 0; 34 } else {

35 System.out.println(start.get(k)); 36 start.remove(k); 37 } 38 } 39 } 40 }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务