Java实现约瑟夫环问题:求解剩余p个编号的算法详解
① \u00a0采用循环结构,因为需要重复执行相同的操作,直到满足退出条件为止。\n② \u00a0采用数组作为物理结构,因为数组可以方便地存储和访问连续的编号。\n③ \u00a0解决该问题的思路、方法和流程如下:\n\u00a0\u00a01. 从键盘输入n、m、p。\n\u00a0\u00a02. 创建一个大小为n的数组,并初始化数组元素为true,表示编号为i的人还在圈内。\n\u00a0\u00a03. 定义一个变量count,初始化为0,表示当前已经报数的人数。\n\u00a0\u00a04. 定义一个变量index,初始化为0,表示当前报数的人在数组中的索引。\n\u00a0\u00a05. 进入循环,直到count等于p为止:\n\u00a0\u00a0\u00a0- 如果数组元素为true,表示编号为index的人还在圈内,进行报数操作。\n\u00a0\u00a0\u00a0\u00a0- 如果报数为m,则将数组元素置为false,表示该人离开圈。\n\u00a0\u00a0\u00a0\u00a0- 如果报数不为m,则继续报数。\n\u00a0\u00a0\u00a0\u00a0- 每次报数后,count加1。\n\u00a0\u00a0\u00a0- 如果数组元素为false,表示编号为index的人已经离开圈,跳过该人。\n\u00a0\u00a0\u00a0- 将index加1,循环回到第5步。\n\u00a0\u00a06. 循环结束后,所有剩余的p个初始编号都已经离开圈,输出结果。
原文地址: https://www.cveoy.top/t/topic/pvlH 著作权归作者所有。请勿转载和采集!