1.介绍问题:
n 个人围成一圈,从第一个人开始报数,数到 mm 的人出列,再由下一个人重新从 11 开始报数,数到 mm 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。
问题来源:约瑟夫问题 - 洛谷https://www.luogu.com.cn/problem/P1996
说明:本次代码中为图方便,使用了jdk自带的队列。这题也可以借助数组模拟的队列或双端链表模拟的队列来做。
2.代码实现
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
/**
* 解决约瑟夫问题
* @author CharlieLiang
*
*/
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner (System.in);
int n=in.nextInt();
int m=in.nextInt();
//jdk自带的队列
Queue queue=new LinkedList();
for(int i=0;i
运行结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)