A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© guozihui876 中级黑马   /  2015-10-27 12:17  /  1287 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有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;
}

评分

参与人数 1黑马币 +6 收起 理由
陆露 + 6 递归美增么听过一只不懂啥意思,13期的话算.

查看全部评分

14 个回复

倒序浏览
if(n ==1)是干嘛用的?
回复 使用道具 举报
学习了
回复 使用道具 举报
陆露 发表于 2015-10-27 13:50
if(n ==1)是干嘛用的?

需要判断是第几个人,要是第一个人的话他的岁数是已知的不存在递归调用了,只有在大于1的话才调用递归
回复 使用道具 举报
陆露 发表于 2015-10-27 13:50
if(n ==1)是干嘛用的?

//如果n=1,给age变量赋值10.也就是age=10
if(n ==1)
age=10
回复 使用道具 举报
陆露 发表于 2015-10-27 13:50
if(n ==1)是干嘛用的?

需要判断是第几个人,要是第一个人的话他的岁数是已知的不存在递归调用了,只有在大于1的话才调用递归
回复 使用道具 举报
陆露 发表于 2015-10-27 13:50
if(n ==1)是干嘛用的?

谢谢你谢谢你
回复 使用道具 举报
陆露 中级黑马 2015-10-27 15:02:53
8#
不谢互相帮助共同成长,希望都能进入13期 我29号面试复试 正在做准备
回复 使用道具 举报
来学习下
回复 使用道具 举报
递归要避免死循环,今天刚学的..学习一下
回复 使用道具 举报
厉害   加油  你是学姐吗?
回复 使用道具 举报
陆露 发表于 2015-10-27 13:50
if(n ==1)是干嘛用的?

用来终止递归函数,防止死递归
回复 使用道具 举报
学习一下,不错哦
回复 使用道具 举报
没做过这样的练习,~~~
回复 使用道具 举报
之前做个一个类似的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马