美文网首页十天学会C语言
第05天C语言(10):递归-练习2

第05天C语言(10):递归-练习2

作者: liyuhong | 来源:发表于2017-07-08 11:15 被阅读16次
    一、概念
    二、代码
    #include <stdio.h>
    int age(int n);
    int main()
    {
        /*
         有5个人坐在一起,问第5个人多少岁?他说比4个人大两岁.
         问第4个人岁数.他说比第3人大两岁
         问第3个人岁数.他说比第2人大两岁
         问第2个人岁数.他说比第1人大两岁
         最后问第1个人.他说是10岁
         请问第5个人多大?
         
         第一个人得岁数 == 10;
         第二个人得岁数 == 第一个人 + 2;       // 12
         第三个人得岁数 == 第二个人 + 2;       // 14
         第四个人得岁数 == 第三个人 + 2;       // 16
         第五个人得岁数 == 第四个人 + 2;       // 18
         
         已知第一个人的年龄,和每个人之间的年龄差,求第n个人的年龄
         age(1) == 10
         age(2) == age(1) + 2;
         age(3) == age(2) + 2;
         age(4) == age(3) + 2;
         age(n) == age(n - 1) + 2;
         */
        
        int result = age(5);
        printf("result = %i\n",result);
        return 0;
    }
    
    int age(int n)
    {
        if (n == 1) {
            return 10;
        }
        else
        {
            
            // return age(5 - 1) + 2;  == age(4) + 2 == 16 + 2
            // return age(4 - 1) + 2;  == age(3) + 2 == 14 + 2
            // return age(3 - 1) + 2;  == age(2) + 2 == 12 + 2
            // return age(2 - 1) + 2;  == age(1) + 2 == 10 + 2
            // return age(1);  == 10
    
            return age(n - 1) + 2;
        }
    }
    
    image.png

    相关文章

      网友评论

        本文标题:第05天C语言(10):递归-练习2

        本文链接:https://www.haomeiwen.com/subject/vlbdhxtx.html