黑马程序员技术交流社区

标题: 复习笔记3 递归 [打印本页]

作者: guozihui876    时间: 2015-10-27 12:17
标题: 复习笔记3 递归
有5个人坐在一起,问第5个人多少岁?他说比第4个人大两岁。问第4个人岁数,他说比第3个人大两岁。问第3个人,又说比第2个人大两岁。问第2个人,说比第1个人大两岁。最后问第1个人, 他说是10岁。请问第5个人多大?
分析:
每一个人的年龄都比其前1个人的年龄大两岁。即: age(5)=age(4)+2
age(4)=age(3)+2
age(3)=age(2)+2
age(2)=age(1)+2
age(1)=10
可以用式子表述如下:
如果(n=1)
age(1)=10
如果(n>1)
age(n)=age(n-1)+2

int getAge(int n)
{
    int age ;
    if(n==1)
    {
        age = 10;
    }
    else
    {
        age = getAge(n-1)+2;
    } 
    return age;
}

作者: 陆露    时间: 2015-10-27 13:50
if(n ==1)是干嘛用的?
作者: 水中月2    时间: 2015-10-27 14:14
学习了
作者: 于鸿鹏    时间: 2015-10-27 14:16
陆露 发表于 2015-10-27 13:50
if(n ==1)是干嘛用的?

需要判断是第几个人,要是第一个人的话他的岁数是已知的不存在递归调用了,只有在大于1的话才调用递归
作者: 叶良辰    时间: 2015-10-27 14:16
陆露 发表于 2015-10-27 13:50
if(n ==1)是干嘛用的?

//如果n=1,给age变量赋值10.也就是age=10
if(n ==1)
age=10

作者: 于鸿鹏    时间: 2015-10-27 14:19
陆露 发表于 2015-10-27 13:50
if(n ==1)是干嘛用的?

需要判断是第几个人,要是第一个人的话他的岁数是已知的不存在递归调用了,只有在大于1的话才调用递归
作者: guozihui876    时间: 2015-10-27 14:56
陆露 发表于 2015-10-27 13:50
if(n ==1)是干嘛用的?

谢谢你谢谢你
作者: 陆露    时间: 2015-10-27 15:02
不谢互相帮助共同成长,希望都能进入13期 我29号面试复试 正在做准备

作者: wangchao1992    时间: 2015-10-27 20:18
来学习下
作者: 菜鸟adambo    时间: 2015-10-27 21:01
递归要避免死循环,今天刚学的..学习一下
作者: 陌上开花    时间: 2015-10-27 21:05
厉害   加油  你是学姐吗?

作者: MLP1355053753    时间: 2015-10-27 21:47
陆露 发表于 2015-10-27 13:50
if(n ==1)是干嘛用的?

用来终止递归函数,防止死递归
作者: MLP1355053753    时间: 2015-10-27 21:48
学习一下,不错哦
作者: Windnon    时间: 2015-10-27 22:36
没做过这样的练习,~~~
作者: StillSad    时间: 2015-10-28 08:36
之前做个一个类似的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2