求出计算机的最大递归深度

由于计算机栈的内存有限,而函数递归会调用到栈,所以函数的递归深度有限
用以下的代码可以求出在本机最大递归深度,用二分法测出来的。
python和c++差这么多的原因可能是编译器分配的栈内存不同:
栈的内存可以自己调整:
Python:

def get_dep(num):
    if num == 1:
        return 1
    else:
        return num * get_dep(num-1)
print(get_dep(998))#最大为998

C++:

#include <iostream>

using namespace std;
typedef long long ll;
ll get_dep(ll x)
{
    if(x==1) return 1;
    else
        return x+get_dep(x-1);
}

int main()
{
    cout << get_dep(43429) << endl;///最大为43429
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Spidy_harker/article/details/105390990
今日推荐