2019-05-07 13:21:42 2486浏览
今天千锋扣丁学堂Java培训老师给大家分享一篇关于Java通过索引值实现约瑟夫环算法的详细介绍,下面我们一起来看一下吧。
import java.util.ArrayList; import java.util.Scanner; public class 约瑟夫环3 { public static void main(String[] args) { /*问题描述:N个人围成一圈,从第一个人开始报数,报到m的人出圈, 剩下的人继续从1开始报数,报到m的人出圈;如此往复,直到所有人出圈*/ Scanner sc = new Scanner(System.in); int n = sc.nextInt();//n个人 int m = sc.nextInt();//m号出列 int count = m; ArrayList<Integer> list = new ArrayList<Integer>(); for(int i = 1 ; i <= n ; i++){ list.add(i); } for(; ;){ if(list.size() == 1){ System.out.print(list.get(0) + " "); return; } if(m <= list.size()){ System.out.print(list.get(m-1) + " "); list.remove(m-1); m += count -1; } if(list.size() < m){ m = m - list.size(); } } } }
想要学好Java开发小编给大家推荐口碑良好的扣丁学堂,扣丁学堂有专业老师制定的Java学习路线图辅助学员学习,此外还有与时俱进的Java课程体系和Java视频教程供大家学习,想要学好Java开发技术的小伙伴快快行动吧。扣丁学堂Java技术交流群:850353792。
【关注微信公众号获取更多学习资料】 【扫码进入Python全栈开发免费公开课】