递归:先递下去,再归回来
函数在自己的函数体里调用自己,叫递归。它必须有一个结束条件,不然会一直调用下去,直到程序崩溃:
if (n == 0) return;:结束条件,n 减到 0 就不再往下调用;count(n - 1);:自己调用自己,但问题规模变小了一点。
count(3) 会调用 count(2),count(2) 再调用 count(1)……这一路叫「递」;count(0) 返回后,再一层层回到 count(1)、count(2)、count(3),叫「归」。
现在程序输出 3 2 1(每个一行)。先运行看画布上各层进入的顺序;然后只挪一行,让输出变成:
1
2
3代码里以 @youci 开头的 printf 只负责运行后在画布上显示中间值,不影响输出和判题,不用改。