华为OD机试真题-报数游戏

题目描述

100 个人围成一圈,每个人有一个编码,编号从1开始到100。

他们从1开始依次报数,报到为M的人自动退出圈圈,然后下一个人接着从1开始报数,直到剩余的人数小于M

请问最后剩余的人在原先的编号为多少?

输入描述

输入一个整数参数 M

输出描述

如果输入参数M小于等于1或者大于等于100,输出“ERROR!”;

否则按照原先的编号从小到大的顺序,以英文逗号分割输出编号 字符串Q

示例1

输入

3

输出

58.91

说明

输入M为3,最后剩下两个人。

示例2

输入

4

输出

34.45.97

说明

输入M为4,最后剩下三个人。

题解

约瑟夫环问题

源码 java

public class Main {
	static Input input;
	static  {
		input = new Input("3");
	}

	public static void main(String[] args) {
		int M = Integer.parseInt(input.nextLine());
		if (M <= 1 || M >= 100) {
			System.out.println("ERROR");
			return;
		}
      	// 初始化一个圆圈队列
		List<String> list = new ArrayList<>();
		for (int i = 1; i <= 100; i++) {
			list.add(i+"");
		}
		int index = M-1;
		// 剩余人数只要大于等于 M 就说明有需要淘汰的人
		while (list.size() >= M) {
			System.out.print(list.remove(index)+",");
			index = index + M -1;
			if (index >= list.size()) {
				index %= list.size();
			}

		}
		System.out.println();
		System.out.println(String.join(",", list));
	}
}
#我的岗位说明书##运营每日一题#
全部评论
这题算简单吧
点赞 回复 分享
发布于 2024-11-01 11:50 浙江
投的是开发岗?
点赞 回复 分享
发布于 2024-10-28 09:43 北京

相关推荐

1.简单介绍一下项目2.你怎么用的rabbitmq解决订单超时取消利用了消息延迟插件,介绍了一下插件原理3.除了这种方式还有吗,不采用mq异步线程和时间戳判断超时时间4.还有别的方式吗?项目非常小,有没有更可靠更简单的方式?答不上来-&nbsp;定时任务(如&nbsp;Spring&nbsp;的@Scheduled或&nbsp;Quartz):每隔固定时间(如&nbsp;1&nbsp;分钟)扫描订单表,判断超时状态(适合小项目,轻量且可靠,无需引入&nbsp;MQ)。-&nbsp;优势:实现简单(几行代码),依赖少,适合数据量小的场景。5.那你有考虑过你为什么要设计使用rabbitmq吗?没考虑技术选型逻辑:需结合项目场景说明必要性,如&nbsp;“订单超时取消是异步场景,用&nbsp;MQ&nbsp;可解耦订单系统和取消逻辑(避免订单服务阻塞);且延迟插件能精准控制超时时间,比定时任务更高效”6.服务降级是什么?7.你的服务降级对你的系统有什么提升吗?8.你还有别的手段提高用户体验提升系统性能吗?回答不满意-&nbsp;缓存(Redis&nbsp;缓存热点数据,商品详情,减少&nbsp;DB&nbsp;查询);-&nbsp;异步化(非实时操作异步处理,比如&nbsp;“下单后发送短信”&nbsp;用&nbsp;MQ&nbsp;异步,避免阻塞主流程);-&nbsp;数据库优化(索引优化、分库分表、SQL&nbsp;优化);-&nbsp;负载均衡(多实例部署,分担流量)9.jvm双亲委派、垃圾回收机制、jvm内存结构10.数据库的事务隔离级别有哪些11.sql语句的执行过程错答成sql语句各个部分执行的顺序正确流程:客户端发送&nbsp;SQL&nbsp;到服务器;解析器(Parser):语法分析(检查&nbsp;SQL&nbsp;语法)→&nbsp;语义分析(检查表&nbsp;/&nbsp;字段是否存在);优化器(Optimizer):选择最优执行计划(如走哪个索引);执行器(Executor):调用存储引擎接口执行,返回结果。12.mysql索引的b+树是怎么设计的13.为什么要设计成叶节点存储数据,非叶节点存储索引矮胖结构,查询速度快14.就这样吗,没有原理吗?b树不行吗?b+树就快吗?b树非叶节点也存储数据,不支持范围查找15.写sql语句怎么减少回表查询脑抽了,没答上来覆盖索引16.锁、死锁、sychronized、cas这些了解吗?
查看16道真题和解析
点赞 评论 收藏
分享
评论
1
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务