很简单的一个问题,
给定一个整数,要求对这个整数从大位数向小位数按顺序输出。
假定这个数是345
,我们来分析一下下面这个程序:
1 | public class N { |
分析回递层之间的关系:f(3)
执行完1
语句后,递归向上返回到f(34)
,而f(34)
与f(3)
的关系是:
1 | f(34) { |
同样地,对于f(345),也有:
1 | f(345) { |
在做题的时候,你可以把这种递归调用的形式用自上而下的形式写出来,然后再分别找每一层与下面一层的关系,以及找到各层(每个被递归的函数)都做了什么。这样就对递归函数的执行有了更直观、深入的了解。
当然,了解递归的原理,还是要从内存的角度去理解的,这里只是记下分析递归的一个小的技巧。