有一个农场在第一年的时候买了一头刚出生牛,这头牛在第四年的时候就能生一头小牛,以后每年这头牛就会生一头小牛。 这些小牛成长到第四年又会生小牛,以后每年同样会生一头牛,假设牛不死,如此反复。请问n年后,这个农场会有多少头牛?c++递归代码
时间: 2024-05-14 08:13:24 浏览: 115
这是一个经典的递归问题,可以使用以下代码解决:
```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头牛。
```
阅读全文