1051: 【出圈】
来源:互联网 发布:新南开淘宝城 编辑:程序博客网 时间:2024/05/24 06:10
题目
Description
设有n个人围坐一圈并按顺时针方向从1到n编号,从第1个人开始进行1到m的报数,报数到第个m人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所剩下一人为止。
Input
输入多行,每行2个数,分别表示n和m.
Output
计算每一行中最后剩下这个人的编号.
Sample Input
10 3
Sample Output
4
代码块
import java.util.Scanner;//输入包public class Main { public static void main(String[] args) { Scanner cn = new Scanner(System.in);//输入流 while (cn.hasNext()) {//多组输入 int n = cn.nextInt(); int m = cn.nextInt(); int[] a = new int[n]; for (int j = 0; j < n; j++) {//将对应的数字存入数组中 a[j] = j + 1; } int i = 0; int len = n; int count = 1;//用来标记 while (len > 1) {//仅剩最后一个人的时候跳出循环 if (a[i % n] > 0) {//i%n用来首尾连接起来成为一个环,列如 11%10=1,既可以回到a[1]了;同时进行判断,数组里对应的值是否为正值 if (count % m == 0) {//如果报数报到第m个时候,就对相应的数组变成-1; a[i % n] = -1; len--; count = 1; i++; } else { i++; count++; } } else { i++; } } for (int j = 0; j < n; j++) {//此时在输出最后的一个人的号码 if (a[j] > 0) { System.out.println(a[j]); } } } cn.close();//关闭输入流 }}
0 0
- 1051: 【出圈】
- 出圈
- 【出圈】
- 出圈题目
- 约瑟夫出圈
- 出圈问题
- 【基础】出圈
- 出圈问题
- 出圈算法
- 出圈问题
- 1015: 【出圈】
- 出圈问题
- 出圈问题
- 报数出圈
- 小孩出圈问题
- 小孩出圈问题
- 约瑟夫出圈问题
- 约瑟夫出圈问题
- Linux权限管理——基本权限
- (转)关于Java的反射机制,你需要理解这些..
- 修改android的wifi客户端名称的两种方法
- 矩阵计算
- [UIScreen mainScreen].bounds.size和哪些因素有关?
- 1051: 【出圈】
- 观察者模式
- 让radio、select、checkbox 具有类似readonly 属性效果
- Markdown 语法手册 (完整整理版)
- fl2440内核自带的LED驱动修改与使用
- 郑轻ACM 1726: 迷宫(BFS)
- 绘制进度条
- HDU5973(威佐夫博弈+Java大数)
- mongodb[零]准备数据,方便测试