[蓝桥杯]-报数游戏
来源:互联网 发布:软件开发和软件研发 编辑:程序博客网 时间:2024/06/14 03:43
游戏开始! 从1号小朋友起,顺时针报数,从1报起。
即:1号小朋友报1,2号小朋友报2,3号小朋友报3, ....
游戏规定,报到数字 m(1<m<100) 的小朋友立即退出报数圈。
在他(她)的顺时针方向的下一个小朋友(如果有的话)开始重新从1报数...
游戏这样一直进行下去,直到圈中只剩下一个小朋友。
求最后剩下的小朋友的编号。
输入:两个整数,n 和 m, 用空格分开。含义如上。
输出:一个整数,表示最后剩下的小朋友的编号。
比如:
输入:
15 3
程序应该输出:
5
再比如:
输入:
7 4
程序应该输出:
2
资源约定:
峰值内存消耗(含虚拟机) < 256M
即:1号小朋友报1,2号小朋友报2,3号小朋友报3, ....
游戏规定,报到数字 m(1<m<100) 的小朋友立即退出报数圈。
在他(她)的顺时针方向的下一个小朋友(如果有的话)开始重新从1报数...
游戏这样一直进行下去,直到圈中只剩下一个小朋友。
求最后剩下的小朋友的编号。
输入:两个整数,n 和 m, 用空格分开。含义如上。
输出:一个整数,表示最后剩下的小朋友的编号。
比如:
输入:
15 3
程序应该输出:
5
再比如:
输入:
7 4
程序应该输出:
2
资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms
去掉注解可以跟好的理解程序
import java.util.ArrayList;import java.util.Scanner;public class Main {public static void main(String[] args) {ArrayList<Integer> list = new ArrayList<Integer>();Scanner scan = new Scanner(System.in);int n = scan.nextInt();int m = scan.nextInt();int count = 0;for (int i = 0; i < n; ++i) {list.add(i + 1);}for (int i = 0; list.size()>1; ++i) {count++;if (count == m) {int temp = list.get(i%n);//避免下标越界//System.out.println(temp+" out");i=list.indexOf(temp);//返回被删除元素的下标list.remove(i);count = 0;n--;i--;//循环要加1,因为元素减少了一个,所以减1//使其停在被删除元素的位置}}System.out.println(list.get(0));}}
0 0
- [蓝桥杯]-报数游戏
- 报数游戏
- 报数游戏
- 报数游戏
- 报数游戏
- 报数游戏
- 报数游戏
- 报数游戏
- 报数游戏
- 报数游戏
- 报数游戏
- 报数游戏
- 报数游戏
- 报数游戏
- 报数游戏(约瑟夫环)
- 项目名称: 报数游戏
- B - 报数游戏
- 编程题:报数游戏
- 数组的定义与使用
- 数据结构之单链表基本操作
- dp问题 滑雪
- IO流加强之转换流字符编码转换演示(读,写)
- MG loves apple HDU6020 BC #93-1002 思维题
- [蓝桥杯]-报数游戏
- 防止一个类被继承
- NYOJ37回文字符串
- request.setCharacterEncoding 、response.setContentType、response.setCharacterEncoding
- 如何使用MongoDB+Springboot实现分布式ID?
- golang学习笔记之引用类型与值类型
- Word Pattern问题及解法
- GitGUI GitBash 推送(push) 403 的解决办法
- 求一个数,从这个数往左起第一个比他小的下标,O(1)复杂度