栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

(递归思路分享)设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(递归思路分享)设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?

设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?
我的思路

  书写名为 ‘birth’ 的函数来模拟一头母牛的运作过程,母牛的每次生育,就相当于又产生了一个 ‘birth’ 函数,可以设置全局变量或者外部变量传入地址的方法来统计母牛的总数量。

我的代码
#include 

void birth(int time, int deadline, int *sum)
{
    for (int i = time; i <= deadline; i++)
    {
        if ((i - time) >= 3)
        {
            birth(i, deadline, sum);
            (*sum)++;
        }
    }
}

int main()
{
    int n;
    scanf("%d", &n);
    int sum = 1;
    birth(1, n, &sum);
    printf("%d", sum);
}

代码详解
void birth(int time, int deadline, int *sum)
{
    for (int i = time; i <= deadline; i++)
    {
        if ((i - time) >= 3)//从出生第四年起及以后,开始每年生育一头小牛
        {
            birth(i, deadline, sum);//新出生的小牛的出生日期为'i'
            (*sum)++;//牛的总数加一
        }
    }
}

变量 ‘time’ : 即这头母牛的出生日期
变量 ‘deadline’ : 即函数的截止日期,若要求取第 ‘N’ 年的母牛数量,则变量 ‘deadline’ 为 ‘N’
变量 ‘*sum’ : 从 ‘birth’ 函数外部传入,用于统计母牛的总数,相对 ‘birth’ 函数起着全局变量的作用


尾注

  个人能力有限,对于递去和归来中解决问题一脸懵逼,所以喜欢设置外部变量来解决问题,关于代码有任何问题或者改进,欢迎评论交流。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656611.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号