递归:
迭代为人,递归为神。
老和尚讲故事
从前有座山,山上有座庙,庙里有个老和尚,老和尚他说:“从前有座山,山上有座庙,庙里有个老和尚,老和尚他说:‘从前有座山,山上有座庙,庙里有个老和尚,老和尚他说:’ ”...
void的函数调用自身
电影院问座位(递和归的过程)
假设黑暗中一群懒人在电影院里,某人想知道自己坐在哪一排,于是问前一排的人「你坐在哪一排?」,前面的人 (代号 A) 回答后,他就知道自己在哪一排了——只要把 A 的答案加一就行。不料 A 比他还懒,也不想数,也问他前面的人 B「你坐在哪一排?」,这样 A 可以用和他一模一样的步骤知道自己所在的排。然后 B 也如法炮制。直到他们这一串人问到了最前面的一排,第一排的人告诉问问题的人「我在第一排」。最后大家就都知道自己在哪一排了。
返回值
用递归方法来解决问题必须符合两个条件:
可以把一个问题转化成一个新的问题,而新问题的解法和原问题的解法完全相同,只是处理对象的规模不同。
必须要有一个明确的递归终止条件。