Java 餐桌游戏--约瑟夫环问题

本文介绍了如何用Java解决约瑟夫环问题,详细解释了问题描述、输入输出描述,给出了样例输入和输出,并提供了解题思路及Java算法源码。通过链表模拟,实现了报数达到特定数值时,对应编号的人出局,直到所有人离开餐桌。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

圆形餐桌上有n个人,每个人都有一个编号,顺时针方向依次从1到n。

由于是圆形餐桌,那么第一个编号1和最后一个编号n是相邻而坐的。

从编号1顺时针开始从1报数,每相邻而坐的就加1,某编号x的人报数为m则出局离开餐桌,出局后不能参与后面的报数,x的顺时针方向的相邻人则重新从1开始继续报数。

举例:编号分别为n、1、2三个人,当前n和1相邻,1和2相邻,1报数了m则出局离开餐桌,那么下一轮报数就是n和2相邻,没有1了,其次编号2的人继续从1开始继续报数。

这样一直报数,最后一位就自动出局了,直到所有人都离开餐点为止,打印出依次离开餐桌的编号。

输入描述

第一行输入一个整数n(1<=n<=10000),表示总人数。

第二行输入一个整数m(1<=m<=10000),表示报到此数必须出局离开餐桌,不能参与后面的报数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值