函数的局部变量存在哪
第 1 步:调用 f(3):压一层 第 2 步:调用 f(2):压一层 第 3 步:调用 f(1):压一层 第 4 步:f(1) 不再往下调,开始返回 第 5 步:f(1) 返回:弹掉这一层 第 6 步:f(2) 返回:弹掉这一层 第 7
递归太深会发生什么
C++ 里递归一直下去不停,最后会【0】。
递归函数必须有什么(C++)
一个能正常结束的递归,必须有【0】。
递归算出来是多少
运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; int fact(int n
一共压了几层
运行下面这段程序,它数的是「递归压了几层」: #include <iostream> #include <string> #include <vector> using namespace std; i
自己写一个递归
补全 fact:用递归算阶乘,别用循环。补全后输出 5 的阶乘。 (本题用 g++ -std=c++17 -O0 编译。)
不用递归自己拿栈来压
递归靠的是系统的调用栈。这次不用递归,自己拿一个栈把整棵树走一遍:kids[i] 是节点 i 的孩子。补全 count_nodes,从根 0 出发数一共有几个节点。 (本题用 g++ -std=c++17 -O0 编译。)
补上递归的基线条件
下面的 fib 漏了基线条件,一跑就无限递归直到崩溃。补上它(fib(0)=0、fib(1)=1),输出 fib(10)。 (本题用 g++ -std=c++17 -O0 编译。)
每次调用压上去的叫什么
第 1 步:调用栈只有这么大 第 2 步:又调用一层:再压一帧 第 3 步:又调用一层:再压一帧 第 4 步:又调用一层:再压一帧 第 5 步:又调用一层:再压一帧 第 6 步:又调用一层:再压一帧 第 7 步:又调用一层:再压一帧 第 8
大局部数组为什么会崩
在函数里写 int a[10000000]; 程序一跑就崩,是因为【0】。