Java综合实验1题目: 猜心术---猜姓氏游戏
一、 实验内容及要求
假设游戏者共有十人,且有10个不同的姓:张、王、李、赵、刘、于、许、金、钱、孙,魔术师将十个姓写在四张纸牌上,游戏者只需指出那几张纸上有自己的姓,魔术师就能准确的说出游戏者的姓,如图所示。
请编程实现:
(1) 分组输出姓氏,让用户选择姓氏所在的组。
(2) 给出你猜的姓氏。
二、 涉及的主要知识点
- JAVA语言的基础知识:变量定义,选择语句,循环语句,数组。
- 计算机基础中的进制转换。
三、 提示及预备知识
实际上是把这10个不同的姓依次编为1、2、3、4、5、6、7、8、9、10,再把这10个数用二进制表示为二进制1、10、11、100、110、111、1000、1001、1010,通过二制数据的规律将之后放在不同的组中,在用户指定的组后,根据相应的规律寻找到相应的姓氏。
实现示例图:
解法一:
思路讲解:
将这十个姓氏按顺序编号为1~10,它们对应的的二进制数值:
1 张 1
2 王 10
3 李 11
4 赵 100
5 刘 101
6 于 110
7 许 111
8 金 1000
9 钱 1001
10 孙 1010
分成四组之后:
(1)张 1 李 11 刘 101 许 111 钱 1001
(2)王 10李 11 于 110 许 111 孙 1010
(3)赵 100 刘 101 于 110 许 111
(4)金 1000 钱 1001 孙 1010
通过观察我们可以发现:
第一组从右往左数第一位都是1
第二组从右往左数第二位都是1
第三组从右往左数第三位都是1
第四组从右往左数第四位都是1
由于数组的索引是从左往右的,所以我们最好将组别进行逆序一下,变为第一组表示4四位二进制数字从右往左数第一位为1…这样做理解起来更清晰,当然不变也可以,但是代码相应的要改变
变换组别之后:
(1)金 1000 钱 1001 孙 1010
(2)赵 100 刘 101 于 110 许 111
(3)王 10李 11 于 110 许 111 孙 1010
(4)张 1 李 11 刘 101 许 111 钱 1001
定义一个长度为4的数组,接收二进制数字的每一位上的数字.
输入你的姓名在第几组之后,将数组的第几个位置处变为1(注意数组的索引=输入的位置-1)
将这个数组里面的元素依次输出来就是所选姓氏对应的二进制,可以直接输出,也可以通过将各位看做是千位,百位,十位,个位,再用元素乘以对应的十进制权值输出这个数字
根据存放所选姓氏对应的二进制的长度为4的数组中的元素,计算它对应的十进制数字,也就是计算出来我们给姓氏编的1~10的号码
**最后,**通过(位置-1)得到存放十个姓氏的数组索引,找到对应的姓氏.
分析完之后,我们可以发现,猜心术的奇妙之处在于分组的巧妙,分组有它的规律
Java综合实验1题目: 猜心术---猜姓氏游戏相关推荐
- 【课程记录·本】WUT数据结构与算法综合实验 | 基于C++MFC的欢乐连连看游戏的设计与实现(附下载链接)
本文基于文章" https://blog.csdn.net/cxh_1231/article/details/89577820 "二次修改发布,原文已失效,不再维护 我的微信公众号 ...
- 华软java综合实验二_2018-2019-2 20175311 实验二 《Java开发环境的熟悉》实验报告
2018-2019-2 20175303 实验二 <Java开发环境的熟悉>实验报告 一.实验准备 1.了解掌握实验所要用到的三种代码 伪代码 产品代码 测试代码 2.IDEA中配置单元测 ...
- 华软java综合实验二_华软-企业级javaII(第一次作业)
目录 一.项目文件结构图: (2) 二.各功能运行结果图: (2) 1.主页面(index.jsp) (2) 2.添加新闻页面(AddNews.jsp) (3) 3.添加新闻成功页面(AddNews_ ...
- java五子棋实验报告6_Java实现两人五子棋游戏(六) 行棋方变换
前面我们已经画好棋盘和棋子,并可以自由落子,且可以判断棋盘中是否有五连珠.接下来的工作是,每次落子后交换行棋方(即将下一棋子颜色由白->黑或黑->白),并将胜出判断增加颜色判断条件(棋盘上 ...
- java综合实训报告_java综合实验报告1.doc
java综合实验报告1 数学与计算机学院 实 验 报 告 课程名称JAVA语言程序设计 课程代码 任课教师周立章指导教师周立章学生姓名郭春艳学 号312008080611123年 级2008专 业软件 ...
- 逻辑 java 猜心术_如何玩简单的数字猜心术
如何玩简单的数字猜心术 | How百科 | 兴趣与手艺www.wgsng.com 用这些数字猜心术惊艳你的亲朋好友吧!这三个把戏从易到难排列(最小数到最大数).就算是小孩子也能做这个简单的数字预测把 ...
- Java题目:玩猜字游戏,每局有三次机会。三次机会用完,询问用户是否继续。输入“y“继续游戏;输入“n“退出游戏
import java.util.Scanner;public class fk {// 玩猜字游戏,每局有三次机会.三次机会用完,询问用户是否继续.输入"Y"或"y&q ...
- Java黑皮书课后题第3章:3.14(游戏:猜硬币的正反面)编写程序,让用户猜一猜是硬币的正面还是反面。随即产生一个整数0或1,分别表示
3.14(游戏:猜硬币的正反面)编写程序,让用户猜一猜是硬币的正面还是反面 题目 题目概述 破题 代码 题目 题目概述 3.14(游戏:猜硬币的正反面)编写程序,让用户猜一猜是硬币的正面还是反面 随即 ...
- 猜数字java程序设计分析_JAVA程序设计课程设计-猜数字游戏设计
JAVA程序设计课程设计-猜数字游戏设计 课 程 设 计 报 告课程设计名称 Java 程序设计 专 业 计算机科学与技术 班 级 2 班 学 号 08030212 姓 名 指导教师 成 绩 2011 ...
最新文章
- Windows10完美安装VMTK(血管建模工具包)
- 《信息检索导论》第三章总结
- 软件测试之三——路径覆盖
- 2008秋-计算机软件基础- 实验一 参考源程序
- Qt学习之路(27): 渐变填充
- 线上python课程一般多少钱-参加Python培训机构要花多少钱
- linux 服务器加 SSH 黑名单
- 文字布局(TEXT STYLE)标记(TAGS)
- JSP注册验证功能的实现
- 离散数学——基础推理
- 经验:中小微企业网站上云怎样选择适合自己的云虚拟主机?
- 2011-11-27神马浮云的一天
- 什么是股票交易api接口?
- 学拳录 23退步压肘
- 计算机为什么无法睡眠,电脑一休眠就唤醒不了该怎么解决
- Apache Zookeeper配置
- 7-5 盲盒包装流水线
- 基于区块链技术nbsp;Bitt推出巴巴…
- 中国计算机核心期刊排名
- 关于img标签中的alt和title属性作用的说明
热门文章
- play框架使用起来(17)
- git命令提交后push失败,缺少changeID的解决办法
- 分布式存储系统Kudu(一)、核心原理
- 『WIN11』出现问题,你的PIN不可用,请重置PIN,无限循环解决
- 《人月神话(The Mythical Man-Month)》2人和月可以互换吗?人月神话存在吗?
- 报错 Error from server (InternalError): an error on the server (““) has prevented the request from suc
- 天梯赛 L1-054 福到了 (15 分) C++
- 后台进程很少,CPU内存却占用过高!
- 浅析信息系统架构的应用架构与数据架构
- 项目管理学习——《构建之法》读书笔记