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

本文深入讲解了递归的概念,通过老和尚讲故事的例子生动阐述了递归的思想。接着介绍了电影院找座位问题,展示了递归如何简化复杂问题。文章详细讨论了递归解题的必要条件,并提供了求n!、1242楼梯问题、1244错排问题和1241汉诺塔问题的递归解决方案。此外,还提及了重庆市第十届大学生程序设计比赛中的递归题目,帮助读者理解和应用递归。
&spm=1001.2101.3001.5002&articleId=103738429&d=1&t=3&u=2badf2bcc9474c4d8696f5ff2a92b7cd)

被折叠的 条评论
为什么被折叠?



