Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 这个简单的程序如何不表示递归?_C++_Recursion - Fatal编程技术网

C++ 这个简单的程序如何不表示递归?

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 =

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

#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;
最有可能在你的数字中引入偏见-研究“鸽子洞原理”。或者只使用一个。*取自维基百科……或者来自维基百科窃取它的同一个地方:)谢谢大家……我在生气时发布了……这个解决方案的线性性质应该是我的第一个标志。我是个傻瓜。;)