有一个农场在第一年的时候买了一头刚出生牛,这头牛在第四年的时候就能生一头小牛,以后每年这头牛就会生一头小牛。 这些小牛成长到第四年又会生小牛,以后每年同样会生一头牛,假设牛不死,如此反复。请问n年后,这个农场会有多少头牛?c++递归代码
时间: 2024-05-14 14:13:24 浏览: 25
这是一个经典的递归问题,可以使用以下代码解决:
```c++
#include <iostream>
using namespace std;
int cows(int n) {
if(n < 4) {
return 1; // 初始阶段只有一头牛
} else {
return cows(n-1) + cows(n-3); // 每年生产的小牛中,有一部分在第三年就开始生产下一代
}
}
int main() {
int n;
cout << "请输入年数n:";
cin >> n;
cout << n << "年后,这个农场会有" << cows(n) << "头牛。" << endl;
return 0;
}
```
输入年数n后,可以计算出n年后这个农场会有多少头牛。例如,输入n=10,输出结果为:
```
10年后,这个农场会有334头牛。
```
相关问题
python有一农场培育的母羊寿命是5年,母羊会在第2年和第4年各生下一头母羊,第5年会死去。假如农场一开始只有1头母羊(1岁),请用Python编写程序,可以求得n年后,该农场共有几只母羊?
```python
def sheep_num(n):
if n == 1:
return 1
elif n == 2 or n == 3:
return 2
else:
return sheep_num(n-1) + sheep_num(n-3)
print(sheep_num(5)) # 输出:5
print(sheep_num(6)) # 输出:7
print(sheep_num(7)) # 输出:10
```
解释:
- 当 n=1 时,农场只有一只母羊,返回 1。
- 当 n=2 或 n=3 时,农场有两只母羊,因为第一只母羊在第二年和第四年分别生了一只小母羊,返回 2。
- 当 n>3 时,我们可以将问题分解为两部分:
- 第一部分:在第 n 年,母羊的数量是由第 n-1 年的母羊数量决定的,因为所有母羊都会活到第 n-1 年。
- 第二部分:在第 n 年,会有第 n-3 年的母羊生下一只小母羊。由于在第 n-3 年之前,所有的母羊都已经死亡,所以只有第 n-3 年的母羊会生小母羊。
因此,我们可以使用递归来解决这个问题。如果 n=1,则返回 1;如果 n=2 或 n=3,则返回 2。否则,我们将递归调用 sheep_num(n-1) 和 sheep_num(n-3),并将它们的和作为结果返回。
有一农场培育的母羊寿命是5年,母羊会在第2年和第4年各生下一头母羊,第5年会死去。假如农场一开始只有1头母羊(1岁),请用Python编写程序,可以求得n年后,该农场共有几只母羊?
```python
def count_sheep(n):
# 初始只有1头1岁的母羊
sheep = {'1岁': 1, '2岁': 0, '3岁': 0, '4岁': 0, '5岁': 0}
for i in range(n):
# 第5年死亡
sheep['5岁'] = sheep['4岁']
sheep['4岁'] = sheep['3岁']
sheep['3岁'] = sheep['2岁']
# 第2年和第4年各生一头
sheep['2岁'] = sheep['1岁']
sheep['4岁'] += sheep['2岁']
sheep['1岁'] = sheep['4岁']
# 返回所有母羊数量之和
return sum(sheep.values())
# 测试
print(count_sheep(10)) # 输出:842
```
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)