C++ 这个简单的程序如何不表示递归?
这个“非”如何证明递归?这是一个简单的高/低查找,我将“mid”设置为该程序在该范围内随机选择的数字的猜测。我正在和一个教练进行一场激烈的比赛。你觉得怎么样C++ 这个简单的程序如何不表示递归?,c++,recursion,C++,Recursion,这个“非”如何证明递归?这是一个简单的高/低查找,我将“mid”设置为该程序在该范围内随机选择的数字的猜测。我正在和一个教练进行一场激烈的比赛。你觉得怎么样 #include <iostream> #include <cstdlib> #include <time.h> using namespace std; int main() { // define variables int left = 1, mid, range, secret, y =
#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;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
//定义变量
int left=1,中间,范围,秘密,y=0;
//查询用户定义的范围,分配给变量范围
cout范围;
//带时间的种子随机数发生器
srand(时间(空));
//根据左和右范围生成密码
secret=rand()%范围;
做{
//定义并分配每个mid更新的主要值
迭代
中间=((范围+左侧)/2);
如果(中间>秘密){
//将范围设置为中间
范围=中等;
//迭代
y++;
}else if(中间<秘密){
//将左移到中间
左=中;
//迭代
y++;
}否则{
//符合逃生条件
cout“递归发生在根据自身或其类型定义事物时。”因此,调用自身的函数是递归的。简单循环不是递归的。因为正如您自己的评论所说,它是迭代的。从技术角度来看,main()不能递归调用(或根本不能)在C++中,要知道递归,首先必须知道递归,因为递归没有调用任何递归。它是简单的,请。我们有这些天。如果你使用<代码> RAND()/SCODE,<代码> SRAND(time(null));< /C> >是一个可怕的种子——你可以做得更好。<代码>%range;
最有可能在你的数字中引入偏见-研究“鸽子洞原理”。或者只使用一个。*取自维基百科……或者来自维基百科窃取它的同一个地方:)谢谢大家……我在生气时发布了……这个解决方案的线性性质应该是我的第一个标志。我是个傻瓜。;)