黑马程序员技术交流社区

标题: 用递归做题可以吗?但是说以后不让用什么情况? [打印本页]

作者: 张国繁    时间: 2015-6-22 21:05
标题: 用递归做题可以吗?但是说以后不让用什么情况?
  有5个人坐在一起,问第5个人多少岁?他说比第4个人大两岁,问第4个人岁数,他说比第3个人大两岁,问第3个人岁数,他又说比第2个人大两岁,问第2个人岁数,他说比第1个人大两岁,最后问第1个人他说10岁。编写程序,当输入第几个人时求出其对应的年龄。
作者: 小龙女的萝卜    时间: 2015-6-22 21:07
#include <stdio.h>
int qiuNianLing(int n);


int main(int argc, const char * argv[])
{

    printf("请输入你要求的人的次数:\n");
   
    int n = 0;
    scanf("%d", &n);
   
    // qiuNianLing(n);
   
    printf("第%d个人的年龄为:%d", n, qiuNianLing(n));
   
    return 0;
}


int qiuNianLing(int n)
{
    //定义变量存储结果
    // int result = 0;
   
    if(n == 1) return 10;

   
    return qiuNianLing(n - 1) + 2;
}
作者: 小小羊    时间: 2015-6-22 21:24
递归可以用for循环来实现,而且比较消耗内存,容易绕。
作者: XiaoBaoMi    时间: 2015-6-22 21:27
是不建议 不是不让
作者: sxakljf    时间: 2015-6-22 21:29
梯归太绕了,能不用就不用吧.
作者: 小年轻不见了    时间: 2015-6-22 21:34
上课老师讲了,太耗内存了
作者: 18425178    时间: 2015-6-22 22:42
建议用循环比较好。递归太耗内存
作者: 杨庆庆    时间: 2015-6-22 22:43
尽量用循环来做题目就好了




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