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

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

(递归思路分享)设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第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’ 函数起着全局变量的作用


尾注

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5658691.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存