c++ - 这个简单的程序怎么不代表递归呢?
问题描述
这个“不”如何证明递归?这是一个简单的高/低查找,我将“中”设置为程序在范围内随机选择的数字的猜测。我正在和教练进行一场小便比赛。你怎么看?
#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# - 当我的源是 DataReader 时,如何指定在表值参数中使用服务器定义的值?
- php - CodeIgniter 项目从本地服务器迁移到 googlecloud
- android - 如何在谷歌开发者控制台中查看项目启用的 API?
- php - 使用 curl php 从嵌套的 JSON 数据中获取数据
- jquery - 如何将json渲染到jquery
- javascript -
innerHTML 和 innerText 之间“”的有趣转换 - powerbuilder - “如何在 Powerbuilder 中调试‘服务器端代码’”
- jest-puppeteer - 有没有办法使用 puppeteer 一个接一个地运行测试脚本,因为我不希望每个 js 文件都很大
- sql - 输入末尾的语法错误。如何解决?
- python - 如何使 pyre-check 库与 numpy 一起使用?