简单问题的递归设计思路

img


可以帮忙分析一下这个问题的递归设计思路吗,不是很理解,可不可以帮忙解释一下

我们假设一只成年母牛从第四年开始每年可以生下一只小母牛,并且小母牛生下来后需要三年成长为成年母牛。

具体来说,这个递归函数 Cow(n) 的意义是:在第 n 年,一只母牛可以繁殖多少次。我们首先需要处理边界条件,即当n小于4时,返回1,因为在前3年里,母牛还未开始繁殖,只能算作一只成年母牛。然后,在n>=4的情况下,我们可以将问题拆分为两部分:

1.在第n年,一只成年母牛可以生下一只小母牛,因此在第n年繁殖的数量为Cow(n-1)。

2.在第n年,每只3年大的小母牛都可以成为一只成年母牛,并继续繁殖,因此在第n年繁殖的数量为Cow(n-3)。

综上所述,我们可以将问题分解为子问题并通过递归解决。在主函数中,我们读入一个年数 day,然后调用 Cow(day) 来计算在 day 年内一只母牛可以繁殖的次数,并将结果打印出来

这你自己拿个笔画一画不就出来了么,相当于找规律问题,第一行表示月份,第二行表示牛,然后前三个月只有一头,第四个月,第一头开始生一头,然后低七个月,第一头生的那头也开始生,依次类推
1 2 3 4 5 6 7
1 1 1 2 3 4 7