【蓝桥杯】【猴子选大王】
来源:互联网 发布:知牛财经房间骗局 编辑:程序博客网 时间:2024/05/16 12:03
【题目】
一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。
从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。
如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?
输入格式:
输入在一行中给一个正整数N(≤1000)。
输出格式:
在一行中输出当选猴王的编号。
输入样例:
11
输出样例:
7
【分析】
使用数组模拟一圈猴子,下标代表编号,由于数组的下标是从0开始的,所以1~N对应成数组的下标是0~(N-1)
设计三个变量,一个下标变量,一个报数变量,一个记录还在圈子中的猴子数量的变量。。
【源码】
public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); sc.close(); int[] a = new int[N]; int index = 0; int i = 1; //报数变量 int counter = N; //记录删除了多少个 while(counter > 1) { if(a[index] == -1) { //说明是无效的猴子 }else { //说明是有效的猴子 //如果报数为3,就将元素的值置为-1,表示退出了圈子 if(i == 3) { a[index] = -1; counter--; //猴子数量-1 } //为下一次报数做准备 i++; if(i==4) { i=1; } } //指向下一个元素 index++; if(index == N) { index = 0; } } for (int j = 0; j < a.length; j++) { if(a[j] != -1) { //找到了猴王 System.out.println(j+1); break; } } }
【结果】
11
7
阅读全文
0 0
- 【蓝桥杯】【猴子选大王】
- 蓝桥杯--猴子选大王-约瑟夫问题
- 猴子选大王问题
- 猴子选大王程序
- 约瑟夫 猴子选大王
- 猴子选大王
- 猴子选大王游戏
- 猴子选大王问题
- 猴子选大王
- 猴子选大王
- 猴子选大王问题
- 猴子选大王
- 实现猴子选大王
- 猴子选大王
- 猴子选大王
- 猴子选大王
- 猴子选大王-1074
- php猴子选大王
- Spring将配置文件里的常量值注入给静态变量
- 爬虫系列7深度遍历网页
- thinkphp3.2集成阿里大于两种方式
- ansible playbook
- 1043. Is It a Binary Search Tree (25)
- 【蓝桥杯】【猴子选大王】
- 爬虫系列8解析robots.txt
- 启动、关闭和设置ubuntu防火墙
- IT运维管理人力成本困境该如何破解?
- spring原理
- 关于最新版本的log4net使用中遇到的问题
- MyEclipse 保存文件时报错 An internal error occurred during: "Building Spring AOP reference model" 的解决方法
- 机器学习数学|概率论基础常见概型分布期望与方差
- LINUX 网络相关配置文件