c++ - 在 C++ 上尝试猜数字游戏

标签 c++ binary-search

<分区>

我正在尝试我发现的一个数字猜谜游戏,似乎无论我选择什么,它总是说我选择的数字小于或大于。我想使用二进制搜索来实现它,但不知道该怎么做。我怎样才能实现它?

代码:

#include <cstdlib>
#include <time.h>
#include <iostream>

using namespace std;

int main() {
      srand(time(0));
      int number;
      number = rand() % 100 + 1;
      int guess;
      do {
            cout << "Enter a number of your choice b/w 1-100: ";
            cin >> guess;
            if (guess < number)
                  cout << "Sorry, try again, it's smaller than the secret number!" << endl;
            else if (guess > number)
                  cout << "Sorry, try again, it's bigger than the secret number!" << endl;
            else
                  cout << "The number is correct! Congratulations!" << endl;
      } while (guess != number);
      system("PAUSE");
      return 0;
}

最佳答案

这应该做这件事

#include <cstdlib>
#include <ctime>
#include <iostream>

using namespace std;
int guessNum(int lb,int ub,int number){
    int lowerBound=lb,upperBound=ub;
    int guess = (lowerBound+upperBound)/2;
    if (number>guess){
        lowerBound = guess;
        guessNum(lowerBound,upperBound,number);
    }
    else if(number < guess){
        upperBound=guess;
        guessNum(lowerBound,upperBound,number);
    }

    else
        return guess;
}

int main() {
    srand(time(NULL));
    int number;
    number = rand() % 100 + 1;
    int guess;

          std::cout<<number << " = " <<guessNum(1,100,number);


    return 0;
}

关于c++ - 在 C++ 上尝试猜数字游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43613813/

相关文章:

c++ - 引用临时变量的静态引用

c++ - 从 C++ 到 Perl

java - 有效地找到排序数组中的整数数量

algorithm - 二分查找实际用在什么地方?

java - 在行大小不固定的 UTF-8 编码文本文件上使用 Java 进行二进制搜索

c++ - 如何正确地将输出组织成列?

c++ - 将指针留在函数中会导致内存泄漏吗?

c++ - 修改后的二进制搜索算法超过时间限制

javascript - Javascript 中的二进制搜索

c++ - C/C++ : error of printing a double array returned by a function