最近准备给人讲一下二分算法的时候打算拿一个小游戏来引入,所以本来打算搜索一下 猜数字游戏,结果搜出来的全是 计算机生成一个数据 由用户来猜,换了几种姿势都没有搜到想要的,想想就算了,自己手写一个才几分钟。 程序确实很简单,但还是挂到csdn上看看能不能以后对有缘人有帮助。
程序大意就是用户心理先想一个数字(不超过int/2都可以,或者自己修改类型),然后回答程序 猜大了还是小了确定最后的数字是多少。
#include<iostream>
#include<cctype>
using namespace std;
const int num=1000;
int main()
{
cout<<"请你心里想一个1-"<<num<<"的数字"<<endl<<endl;
int l=1,r=num;
while(l<r)
{
int now=(l+r)/2;
cout<<"这个数字比"<<now<<"大还是小?"<<endl;
cout<<"输入代表b代表大,输入s代表小,输入i代表已经猜到了"<<endl;
char choice;
cin>>choice;
if(tolower(choice)=='b')
{
l=now+1;
}
else if(tolower(choice)=='s')
{
r=now;
}
else
{
break;
}
}
cout<<"你想的这个数字是"<<(l+r)/2<<"!"<<endl;
return 0;
}