P1996_约瑟夫问题(JAVA语言)_可能是最简单的解法了!
2024-10-19 05:48:48
思路:使用队列模拟。
判断是否为出圈的数。如果不是,把数加入队列尾部;如果是,输出并删除。
题目背景
约瑟夫是一个无聊的人!!!
题目描述
n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号.
输入输出格式
输入格式:
n m
输出格式:
出圈的编号
输入输出样例
输入样例#1: 复制
10 3
输出样例#1: 复制
3 6 9 2 7 1 8 5 10 4
说明
m, n \le 100m,n≤100
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int m=in.nextInt();
Queue<Integer> q=new LinkedList<Integer>();
for(int i=1;i<=n;i++)
q.add(i);
int k=0;
while(q.size()>0)//判断队列中是否还有元素
{
if(++k%m==0)//报数到m,说明该数字需出圈
System.out.print(q.remove()+" ");//输出删除该数
else
q.add(q.remove());//如果是非出圈数,将该数删除并加入队列尾部
}
}
}
最新文章
- jvisualvm参数配置
- 如何利用java得到当前的时间和前一天的时间
- Angular系列----AngularJS入门教程01:AngularJS模板 (转载)
- nyoj 115 城市平乱 dijkstra最短路
- 【笨嘴拙舌WINDOWS】字符类型与字符串
- Quartz.NET作业调度框架详解
- 关于perl闭包(个人理解)
- Ajax跨域问题的出现和解决
- Promise实现小球的运动
- Python面向对象——基本继承
- VMware虚拟化培训手册
- @property、@sythesize以及Ivar和@dynamic讲解(下)
- MyBatis动态SQL之一使用 if 标签和 choose标签
- day12--装饰器
- Python网络爬虫实战:根据天猫胸罩销售数据分析中国女性胸部大小分布
- sql>;desc 存储包——查看包内存储过程、函数
- 【JMeter】【接口测试】csv参数化,数据驱动,自动化测试
- Vue 全局注册逐渐 和 局部注册组件
- Django的学习(三)————models
- Odoo作为后端时如何返回数据给webapp、移动端app
热门文章
- Python+argparse+notebook
- 1GB === 1000MB &; 1GB === 1024MB
- js regular expression &; email checker
- Clean Code of JavaScript
- taro demos &; taro 组件库
- Flutetr flutter_downloader 1.3.1
- NGK.IO的智能合约是炒作还是未来商业的主流?
- 解决异常: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.7:generate failed: Cannot instantiate object of type tk.mybatis.mapper.generator.MapperPlugin ->; [Help 1]
- ERROR 1040 (HY000) Too many connections
- 第39天学习打卡(UDP多线程在线咨询 URL)