概述
现在,我们看一下
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 5n 7 9 11n输入 Y 代表有,输入 N 代表没有:n";
cin >> answer;
if(answer == 'Y') m += 1;
system("cls");
cout << "你生日的那一月有在这几个数字里吗?n";
cout << " 2 3 6n 7 10 11n输入 Y 代表有,输入 N 代表没有:n";
cin >> answer;
if(answer == 'Y') m += 2;
system("cls");
cout << "你生日的那一月有在这几个数字里吗?n";
cout << " 4 5 6n 7 12n输入 Y 代表有,输入 N 代表没有:n";
cin >> answer;
if(answer == 'Y') m += 4;
system("cls");
cout << "你生日的那一月有在这几个数字里吗?n";
cout << "8 9 10n11 12n输入 Y 代表有,输入 N 代表没有:n";
cin >> answer;
if(answer == 'Y') m += 8;
system("cls");
cout << "继续回答问题:n";
cout << "你生日的那一天有在这几个数字里吗?n";
cout << " 1 3 5 7n 9 11 13 15n17 19 21 23n25 27 29 31n输入 Y 代表有,输入 N 代表没有:n";
cin >> answer;
if(answer == 'Y') b += 1;
system("cls");
cout << "你生日的那天有在这几个数字里吗?n";
cout << " 2 3 6 7n10 11 14 15n18 19 22 23n26 27 30 31n输入 Y 代表有,输入 N 代表没有:n";
cin >> answer;
if(answer == 'Y') b += 2;
system("cls");
cout << "你生日的那天有在这几个数字里吗?n";
cout << " 4 5 6 7n12 13 14 15n20 21 22 23n28 29 30 31n输入 Y 代表有,输入 N 代表没有:n";
cin >> answer;
if(answer == 'Y') b += 4;
system("cls");
cout << "你生日的那天有在这几个数字里吗?n";
cout << " 8 9 10 11n12 13 14 15n24 25 26 27n28 29 30 31n输入 Y 代表有,输入 N 代表没有:n";
cin >> answer;
if(answer == 'Y') b += 8;
system("cls");
cout << "你生日的那天有在这几个数字里吗?n";
cout << "16 17 18 19n20 21 22 23n24 25 26 27n28 29 30 31n输入 Y 代表有,输入 N 代表没有:n";
cin >> answer;
if(answer == 'Y') b += 16;
system("cls");
cout << "你生日的在 " << m << " 月 "<< b << " 日!";
return 0;
}
这个游戏巧妙地利用了二进制的性质,十分的奇妙,感谢阅读!
最后
以上就是神勇大米为你收集整理的c++ 巧妙利用二进制,猜出你的生日 猜生日游戏的全部内容,希望文章能够帮你解决c++ 巧妙利用二进制,猜出你的生日 猜生日游戏所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复