c++ 巧妙利用二进制,猜出你的生日 猜生日游戏
现在,我们看一下
1 3 5 7
9 11 13 15
17 19 21 23
25 27 29 31
这一组数有什么规律?
他们看似没有任何规律,但是,把他们变成二进制,就会发现,他们的二进制第0位都是1!
2 3 6 7
10 11 14 15
18 19 22 23
26 27 30 31
看这一组,没错!他们的二进制第一位都是1!
所以,假如小明的生日是在当月第三天,那么第一组数和第二组数都有他的那一天!
那知道这个有什么用呢?
我们看一下,第一组是第0位二进制为1的数,那用一个变量存起来,第0位代表1,那就让那个变量的值加1(注意初始化),第二组第一位是1,第一位对应二进制的2,所以那个变量的值要加2,这样就是3,我们就知道了小明的那一天,另外几组都没有3这个数字,就可以确定小明就是3那一天,运用这个原理,我们就可以做猜生日游戏!
上代码:
#include <iostream>
#include <windows.h>
using namespace std;int main() {char answer;int b = 0, m = 0;cout << "你生日的那一月有在这几个数字里吗?\n";cout << " 1 3 5\n 7 9 11\n输入 Y 代表有,输入 N 代表没有:\n";cin >> answer;if(answer == 'Y') m += 1;system("cls");cout << "你生日的那一月有在这几个数字里吗?\n";cout << " 2 3 6\n 7 10 11\n输入 Y 代表有,输入 N 代表没有:\n";cin >> answer;if(answer == 'Y') m += 2;system("cls");cout << "你生日的那一月有在这几个数字里吗?\n";cout << " 4 5 6\n 7 12\n输入 Y 代表有,输入 N 代表没有:\n";cin >> answer;if(answer == 'Y') m += 4;system("cls");cout << "你生日的那一月有在这几个数字里吗?\n";cout << "8 9 10\n11 12\n输入 Y 代表有,输入 N 代表没有:\n";cin >> answer;if(answer == 'Y') m += 8;system("cls");cout << "继续回答问题:\n"; cout << "你生日的那一天有在这几个数字里吗?\n";cout << " 1 3 5 7\n 9 11 13 15\n17 19 21 23\n25 27 29 31\n输入 Y 代表有,输入 N 代表没有:\n";cin >> answer;if(answer == 'Y') b += 1;system("cls");cout << "你生日的那天有在这几个数字里吗?\n";cout << " 2 3 6 7\n10 11 14 15\n18 19 22 23\n26 27 30 31\n输入 Y 代表有,输入 N 代表没有:\n";cin >> answer;if(answer == 'Y') b += 2;system("cls");cout << "你生日的那天有在这几个数字里吗?\n";cout << " 4 5 6 7\n12 13 14 15\n20 21 22 23\n28 29 30 31\n输入 Y 代表有,输入 N 代表没有:\n";cin >> answer;if(answer == 'Y') b += 4;system("cls");cout << "你生日的那天有在这几个数字里吗?\n";cout << " 8 9 10 11\n12 13 14 15\n24 25 26 27\n28 29 30 31\n输入 Y 代表有,输入 N 代表没有:\n";cin >> answer;if(answer == 'Y') b += 8;system("cls");cout << "你生日的那天有在这几个数字里吗?\n";cout << "16 17 18 19\n20 21 22 23\n24 25 26 27\n28 29 30 31\n输入 Y 代表有,输入 N 代表没有:\n";cin >> answer;if(answer == 'Y') b += 16;system("cls");cout << "你生日的在 " << m << " 月 "<< b << " 日!";return 0;
}
这个游戏巧妙地利用了二进制的性质,十分的奇妙,感谢阅读!
c++ 巧妙利用二进制,猜出你的生日 猜生日游戏相关推荐
- 利用Python语言编程,完成猜数游戏,系统随机产生一个1到100的数字num1,用户输入一个数字guess,如果没有猜对,根据系统给出的提示重新猜数,直到才对为止。
利用Python语言编程,完成猜数游戏,系统随机产生一个1到100的数字num1,用户输入一个数字guess,如果没有猜对,根据系统给出的提示重新猜数,直到才对为止. 要求:(1)系统每次都要给出新的 ...
- 利用random生成1-100里面的随机数,使用程序猜出这个数是多少
利用random生成1-100里面的随机数,使用程序猜出这个数是多少 Random r = new Random(); int number = r.nextInt(100)+1; Scanner s ...
- python中词云图怎样变成特殊图案_如何利用python画出一个多变的词云图?(1)...
问题描述: 如何利用python画出一个多变的词云图? 解决方法:import numpy as np import matplotlib import matplotlib.pyplot as pl ...
- 黑客观察手机倾斜角度就能猜出你的密码,首次命中率高达74%!
本文讲的是黑客观察手机倾斜角度就能猜出你的密码,首次命中率高达74%!, 近日,安全研究人员发现了一种黑客入侵智能手机的新方式,即使用户手机有PIN码和密码保护,黑客也只需要通过窥探其输入手机密码时倾 ...
- kdj值应用口诀_KDJ应用口诀,一文教你巧妙利用KDJ买卖股票
原标题:KDJ应用口诀,一文教你巧妙利用KDJ买卖股票 KDJ指标由三条曲线组成,它在软件中的默认显示颜色是:K线为白色,D线为黄色,J线为紫色. KDJ指标三条曲线的状态体现了三大应用法则,这三个法 ...
- c语言程序立体几何计算机,立体几何教学中巧妙利用信息技术 -----培养高中学生数学学习的兴趣 张芬 2014年11月10日...
立体几何教学中巧妙利用信息技术 -----培养高中学生数学学习的兴趣 西安市第四十七中学 张芬 摘要 : 本文从立体几何教学内容的特点及几何概念的理解掌握,命题的推理论证过程,命题的理解和公式的推导与 ...
- 仅凭脑电波就能猜出密码?这款耳机暴露了脑机接口的大问题
脑机接口听起来颇具未来感,Facebook和伊隆·马斯克的Neuralink都在进行相关研发,但是,其背后的隐私泄露问题也不容小觑,一款脑电波感应耳机就证明了这种风险的可能性. Epoc +是一款脑电 ...
- 利用二分法查找 设计人与计算机猜数游戏,计算机游戏教学法第十一章.ppt
<计算机游戏教学法第十一章.ppt>由会员分享,可在线阅读,更多相关<计算机游戏教学法第十一章.ppt(72页珍藏版)>请在装配图网上搜索. 1.第十一章 计算机游戏教学法,方 ...
- 封装利用libwebsockets写出的客户端、服务端程序为客户端服务端类
封装利用libwebsockets写出的客户端.服务端程序为客户端服务端类 文章目录 封装利用libwebsockets写出的客户端.服务端程序为客户端服务端类 1.封装 2.封装后写wss客户端.服 ...
最新文章
- 【ACM】杭电OJ 1106 函数atoi
- 浏览器获取设备信息_过滤获取日志和浏览器信息
- 腾讯开源国际化新突破,将紧密参与全球开源治理
- Windows消息ID号查看
- 利用Theme自定义Activity进入退出动画
- 微信小程序开发之普通链接二维码
- ubuntu 使用apt-get install安装特定版本
- (十)用于面部识别的混合边缘人工智能:下一步
- python安装 + pycharm安装和入门学习 +安装配置TensorFlow
- vSphere vsan 6.5部署之一VCSA6.5安装
- CentOS 6.2 虚拟机 mail邮件信息: crash:[abrt] full crash report
- 【TiDB DevCon 2020】金融专题论坛演讲视频汇总
- 【JAVA】tomcat 支持excel07下载
- 数据库实验 实验一 数据库创建与管理
- 基于动物性去思考人性
- 在安装office2003时,出现安装程序包的语言不受系统支持的错误,如何解决?
- phpmyadmin没有接收到要导入的数据.可能是文件名没有提交,也可能是文件大小超出 PHP 限制.
- Halcon学习笔记-工业相机千兆网线和USB优劣对比
- 为什么不建议把数据库部署在 Docker 容器内?
- Gensim之Word2Vec使用手册
热门文章
- 总投资460亿!陈十一院士任校长,东方理工大学年薪40-60万招人
- JAVA课程设计——彩票抽奖购买系统
- 如何管理好工厂,生意人值得收藏。
- manjaro安装tim
- 【C++】类的6个默认成员函数详解
- 微信公众帐号开发教程第18篇-应用实例之音乐搜索
- WordPress 函数大全
- mc服务器怎么传送到我位置,我的世界联机怎么传送到队友身边_我的世界联机怎么传送到队友位置哪里身边手机版_攻略...
- 《计算机是怎样跑起来的》优化使用VBScript语言编写的石头剪刀布游戏
- C++ 递归实现汉诺塔