一、 实验内容及要求

假设游戏者共有十人,且有10个不同的姓:张、王、李、赵、刘、于、许、金、钱、孙,魔术师将十个姓写在四张纸牌上,游戏者只需指出那几张纸上有自己的姓,魔术师就能准确的说出游戏者的姓,如图所示。

请编程实现:
(1) 分组输出姓氏,让用户选择姓氏所在的组。
(2) 给出你猜的姓氏。
二、 涉及的主要知识点

  1. JAVA语言的基础知识:变量定义,选择语句,循环语句,数组。
  2. 计算机基础中的进制转换。
    三、 提示及预备知识
    实际上是把这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题目: 猜心术---猜姓氏游戏相关推荐

  1. 【课程记录·本】WUT数据结构与算法综合实验 | 基于C++MFC的欢乐连连看游戏的设计与实现(附下载链接)

    本文基于文章" https://blog.csdn.net/cxh_1231/article/details/89577820 "二次修改发布,原文已失效,不再维护 我的微信公众号 ...

  2. 华软java综合实验二_2018-2019-2 20175311 实验二 《Java开发环境的熟悉》实验报告

    2018-2019-2 20175303 实验二 <Java开发环境的熟悉>实验报告 一.实验准备 1.了解掌握实验所要用到的三种代码 伪代码 产品代码 测试代码 2.IDEA中配置单元测 ...

  3. 华软java综合实验二_华软-企业级javaII(第一次作业)

    目录 一.项目文件结构图: (2) 二.各功能运行结果图: (2) 1.主页面(index.jsp) (2) 2.添加新闻页面(AddNews.jsp) (3) 3.添加新闻成功页面(AddNews_ ...

  4. java五子棋实验报告6_Java实现两人五子棋游戏(六) 行棋方变换

    前面我们已经画好棋盘和棋子,并可以自由落子,且可以判断棋盘中是否有五连珠.接下来的工作是,每次落子后交换行棋方(即将下一棋子颜色由白->黑或黑->白),并将胜出判断增加颜色判断条件(棋盘上 ...

  5. java综合实训报告_java综合实验报告1.doc

    java综合实验报告1 数学与计算机学院 实 验 报 告 课程名称JAVA语言程序设计 课程代码 任课教师周立章指导教师周立章学生姓名郭春艳学 号312008080611123年 级2008专 业软件 ...

  6. 逻辑 java 猜心术_如何玩简单的数字猜心术

    如何玩简单的数字猜心术 | How百科 | 兴趣与手艺​www.wgsng.com 用这些数字猜心术惊艳你的亲朋好友吧!这三个把戏从易到难排列(最小数到最大数).就算是小孩子也能做这个简单的数字预测把 ...

  7. Java题目:玩猜字游戏,每局有三次机会。三次机会用完,询问用户是否继续。输入“y“继续游戏;输入“n“退出游戏

    import java.util.Scanner;public class fk {// 玩猜字游戏,每局有三次机会.三次机会用完,询问用户是否继续.输入"Y"或"y&q ...

  8. Java黑皮书课后题第3章:3.14(游戏:猜硬币的正反面)编写程序,让用户猜一猜是硬币的正面还是反面。随即产生一个整数0或1,分别表示

    3.14(游戏:猜硬币的正反面)编写程序,让用户猜一猜是硬币的正面还是反面 题目 题目概述 破题 代码 题目 题目概述 3.14(游戏:猜硬币的正反面)编写程序,让用户猜一猜是硬币的正面还是反面 随即 ...

  9. 猜数字java程序设计分析_JAVA程序设计课程设计-猜数字游戏设计

    JAVA程序设计课程设计-猜数字游戏设计 课 程 设 计 报 告课程设计名称 Java 程序设计 专 业 计算机科学与技术 班 级 2 班 学 号 08030212 姓 名 指导教师 成 绩 2011 ...

最新文章

  1. Windows10完美安装VMTK(血管建模工具包)
  2. 《信息检索导论》第三章总结
  3. 软件测试之三——路径覆盖
  4. 2008秋-计算机软件基础- 实验一 参考源程序
  5. Qt学习之路(27): 渐变填充
  6. 线上python课程一般多少钱-参加Python培训机构要花多少钱
  7. linux 服务器加 SSH 黑名单
  8. 文字布局(TEXT STYLE)标记(TAGS)
  9. JSP注册验证功能的实现
  10. 离散数学——基础推理
  11. 经验:中小微企业网站上云怎样选择适合自己的云虚拟主机?
  12. 2011-11-27神马浮云的一天
  13. 什么是股票交易api接口?
  14. 学拳录 23退步压肘
  15. 计算机为什么无法睡眠,电脑一休眠就唤醒不了该怎么解决
  16. Apache Zookeeper配置
  17. 7-5 盲盒包装流水线
  18. 基于区块链技术nbsp;Bitt推出巴巴…
  19. 中国计算机核心期刊排名
  20. 关于img标签中的alt和title属性作用的说明

热门文章

  1. play框架使用起来(17)
  2. git命令提交后push失败,缺少changeID的解决办法
  3. 分布式存储系统Kudu(一)、核心原理
  4. 『WIN11』出现问题,你的PIN不可用,请重置PIN,无限循环解决
  5. 《人月神话(The Mythical Man-Month)》2人和月可以互换吗?人月神话存在吗?
  6. 报错 Error from server (InternalError): an error on the server (““) has prevented the request from suc
  7. 天梯赛 L1-054 福到了 (15 分) C++
  8. 后台进程很少,CPU内存却占用过高!
  9. 浅析信息系统架构的应用架构与数据架构
  10. 项目管理学习——《构建之法》读书笔记