阶乘的递归有多深
运行下面这段程序,它数的是「最深压了几层」: #include <algorithm> #include <iostream> #include <numeric> #include <string
汉诺塔三层要走几步
汉诺塔的递归是「先搬上面 n-1 个,搬一次最大的,再把 n-1 个搬回来」。运行下面这段程序: #include <algorithm> #include <iostream> #include <numer
数出递归有多深
补全 fact:算阶乘的同时记下最深压到了第几层。算 5 的阶乘,输出最大深度。 (本题用 g++ -std=c++17 -O0 编译。)
数出汉诺塔要搬几次
补全 hanoi:搬 n 层要「先搬上面 n-1 层、搬一次最大的、再搬回 n-1 层」。搬 3 层,输出一共搬了几次。 (本题用 g++ -std=c++17 -O0 编译。)
一次两个分支代价就爆了
阶乘每层只递归一次,斐波那契每层递归两次——同样是 n = 20,调用次数差多少?补全带计数的 fib,把两个调用次数用 / 拼起来输出(阶乘在前)。 (本题用 g++ -std=c++17 -O0 编译。)
递归比迭代多花的是什么
第 1 步:上:递归;下:循环 第 2 步:递归:第 1 层栈帧 第 3 步:递归:第 2 层栈帧 第 4 步:递归:第 3 层栈帧 第 5 步:递归:第 4 层栈帧 第 6 步:递归:第 5 层栈帧 第 7 步:循环从头到尾只占 1 层
那递归还有什么好(C++)
明知有栈开销还用递归,理由是【0】。
什么样的递归最好改成循环
最容易改写成循环的是【0】。
循环版算出来一样吗
运行下面这段程序: #include <algorithm> #include <iostream> #include <numeric> #include <string> #include
循环版压了几层栈
运行下面这段程序,它数的是「最深压了几层」: #include <algorithm> #include <iostream> #include <numeric> #include <string