首页 > 解决方案 > 这个简单的程序怎么不代表递归呢?

问题描述

这个“不”如何证明递归?这是一个简单的高/低查找,我将“中”设置为程序在范围内随机选择的数字的猜测。我正在和教练进行一场小便比赛。你怎么看?

#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;

int main()
{
    // define variables
int left = 1, mid, range, secret, y = 0;

// query user defined range, assign to variable range
cout << "Please enter top of range: " << endl;
cin >> range;

// seed random number generator with time
srand(time(NULL));

// generate secret number based between left and range
secret = rand() % range;

    do {
        // define and assign primary value of mid updating on each 
iteration
        mid = ((range + left) / 2);

        if (mid > secret) {
            // set range to mid
            range = mid;
            // iterate
            y++;

        } else if (mid < secret) {
            // set left to mid
            left = mid;
            // iterate
            y++;

        } else {
                // escape condition met
                cout << "Found secret number " << secret << " in " << y 
<< " tries. " << endl;
                return 0;
            }

        } while (mid != secret);

    return 0;
}

标签: c++recursion

解决方案


“当事物根据自身或其类型定义时,就会发生递归。” 因此,调用自身的函数是递归的。一个简单的循环不是。


推荐阅读