绕圈报数游戏Java算法_经典游戏(围圈数数,数到3者出圈,求最后幸存者)
[java]代码库import java.util.Scanner;
/**
* 约瑟夫问题
* 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,下个人继续开始从1开始数,问最后留下的是原来第几号。
* (例如有【A B C D】4人参加,编号分别是1 2 3
* 4,其中A-1表示A君报数1,报数序列为:A-1,B-2,C-3【C退出】,D-1,A-2,B-3【B退出】,D-1,A
* -2,D-3【D退出】,最后剩下A君 ,而A君的原始编号是1,那么最后答案是1)
*/
public class Demo {
public static void main(String[] args) {
System.out.println("游戏人数:");
Scanner s = new Scanner(System.in);
int n = s.nextInt();
boolean[] arr = new boolean[n];
for (int i = 0; i < arr.length; i++) {
arr[i] = true;// 下标为TRUE时说明还在圈里
}
int leftCount = n;
int countNum = 0;
int index = 0;
System.out.print("出圈序列:");
while (leftCount > 1) {
if (arr[index] == true) {// 当在圈里时
countNum++; // 报数递加
if (countNum == 3) {// 报道3时
countNum = 0;// 从零开始继续报数
arr[index] = false;// 此人退出圈子
System.out.print((index + 1) + " ");// 数组起始下标是0,标号的起始值是1
leftCount--;// 剩余人数减一
}
}
index++;// 每报一次数,下标加一
if (index == n) {// 是循环数数,当下标大于n时,说明已经数了一圈,
index = 0;// 将下标设为零重新开始。
}
}
for (int i = 0; i < n; i++) {
if (arr[i] == true) {
System.out.println("\n最后剩下的人是 " + (i + 1) + " 号");// 数组起始下标是0,标号的起始值是1
}
}
}
}
[代码运行效果截图]
绕圈报数游戏Java算法_经典游戏(围圈数数,数到3者出圈,求最后幸存者)相关推荐
- 货郎担问题java算法_经典算法(1)---货郎担问题
一.货郎担问题 货郎担问题属于易于描述但难于解决的著名难题之一,至今世界上还有不少人在研究它.该问题的基本描述是:某售货员要到若干个村庄售货,各村庄之间的路程是已知的,为了提高效率,售货员决定从所在商 ...
- 【源码+图片素材+详细教程】Java游戏开发_Java开发经典游戏飞翔的小鸟_飞扬的小鸟_Java游戏项目Flappy Bird像素鸟游戏_Java课程设计项目
课程目标: 1.通过本课程的学习巩固Java的相关基础知识,例如循环判断,数组和集合的使用,对象的继承,接口的实现,窗口的创建,事件监听,图形绘制. 2.完成小鸟的移动,管道自动生成.碰撞死亡,计分系 ...
- java台球游戏设计原理_台球游戏的核心算法和AI(1)
前言: 08年的时候, 写过一个台球游戏, 用的是java, 不过代码真的是用传说中的神器notepad写的(你信吗? 其实是用GVIM写的, ^_^), 很多类都在同一java文件中编写. 可见当时 ...
- Java语言实现经典游戏俄罗斯方块
使用Java语言编写的经典游戏俄罗斯方块,能够调整游戏难度.加快下落速度.左右旋转方块等全部功能.(代码已集成在一个class内,如下所示,点击即可运行.内容水平有限,欢迎指正批评.) 演示视频 ht ...
- 雷电2手机游戏JAVA下载_【雷电战士2手机版】雷电战士2单机手机版游戏下载-街机中国...
雷电战士2是一款空战游戏,这是雷电系列游戏的高端作品,游戏以极快的战斗节奏著称,并配合上相当丰富的战机种类,成为了最为经典一部雷电作品. 游戏评价 想要通关该游戏不仅要有熟练的操纵还要有巧妙的战术,游 ...
- 21点 小游戏 java代码_基于Java的21点扑克游戏的实现
在上次写的比较牌点的扑克游戏上Java扑克游戏(多人多牌数比较游戏)的实现中,添加21点游戏规则,实现21点牌类游戏.具体实现步骤如下:[需要源代码的留QQ,大家一起探讨探讨哈,谢谢啦!] 抽象出规则 ...
- python扫雷 高级算法_扫雷游戏的布雷算法、策略与优化(附Python代码)
1 布雷算法的应用 在扫雷游戏中,将雷均匀地分布在局面中依靠一种布雷算法.众所周知,在原始版本的Windows扫雷中,由于布雷算法的缺陷,使得其存在Board Cycle(局面循环).而标准扫雷游戏中 ...
- pc端游戏修改器_【游戏资讯】大人,时代变了,这款游戏来PC端圈钱有点着急了...
要是说近几天游戏圈发生的大事,应该是<原神>开始PC端测试了,广告漫天飞,我在朋友圈也看到了好几个的截图,从宣布公测开始热度是居高不下. <原神>背后的公司米哈游手底下最出名的 ...
- 基于java的拼图经典游戏(附代码)
拼图游戏是一款经典的益智游戏,游戏开始前图片被随机打乱,空块位于最右下角,玩家通过点击空块周围图片或者按键方式对图片和空块进行相互交换,直到所有图片都回到原位即为游戏胜利. 本次制作的拼图游戏运行界面 ...
最新文章
- IOS 滑动指示导航栏 渐变
- python干货_python 基础干货 02
- 前端学习(1858)vue之电商管理系统电商系统之分析登录页面的布局结构
- JavaScript操作大全整理(思维导图三--函数基础)
- CCF CSP 201809-1 卖菜
- 黑客攻防技术宝典Web实战篇第2版—第4章 解析应用程序
- 外键列到底要建在哪里?
- 搜索附近店铺到用户的距离的小经验
- PIX 7.2 PAT
- 【2019杭电多校第一场1004=HDU6581】Vacation(思维+避免超时)
- 阿里云域名购买和域名解析教程
- python3怎么运行代码_python怎么运行代码
- [计算机毕业设计]深度学习的图标型验证码识别系统
- 云览天下,一触即达——QQ 浏览器(android) 设计之路
- PS制作科幻特效的金色立体文字
- 3DoF+ Video简介
- VUE中v-for循环
- MDK keil 图标显示异常的解决办法
- AAA认证——IE阶段
- 用户登录如何给密码加密xxtea.js
热门文章
- nowcoder:[编程题] 头条校招(贪心)
- 外媒:朝鲜导弹发射失败或因美国网络攻击所致
- 外汇会计-概念-即期汇率
- pl/sql基础知识—定义并使用变量
- 怎么查服务器芯片组,服务器芯片组
- MATLAB--数字图像处理 特征点匹配
- cmake CMAKE_CXX_COMPILER_VERSION 检查失败
- 64位 iee754_IEEE 754标准
- AI 入门怎么学?这份学习指南请收好!
- 【PyTorch】4 姓氏分类RNN实战(Simple RNN)——18 种起源语言的数千种姓氏分类