这道题目可以使用二分法的方法可以快速猜出所想的值。
为了确保指令可以一直使用下去,需要使用do--while的循环,在玩家输入0之前一直执行命令。
#include <iostream>
using namespace std;
int main()
{
int lower = 1; // 最小可能的数字
int upper = 1000; // 最大可能的数字
int guess = (lower + upper) / 2; // 计算机的猜测
cout << "欢迎来到猜数字游戏!\n";
cout << "请在1和1000之间想一个整数,并告诉我是否猜中。\n";
int shuru;
do
{
cout << "计算机猜测:" << guess << "。是太大(1),太小(-1),还是猜中了(0)? "<<endl;
cin >> shuru;
if (shuru == 1) {
upper = guess - 1;
}
else if (shuru == -1) {
lower = guess + 1;
}
guess = (lower + upper) / 2;
} while (shuru != 0);//只要玩家输入的值不为0,循环就一直进行下去。
cout << "计算机猜中了!答案是:" << guess << endl;
return 0;
}