题目描述
现有一养殖场培育母牛。假设一头母牛名叫M,每年春季生一头小母牛,小母牛经历两年的成长可以成熟,从成熟的这一年开始,每年春季生一头小母牛,那么在第n年春季的时候,母牛M共有多少头后代母牛呢?(注意:第一年母牛M,不产小牛,从第二年开始产小牛。)
输入描述
一个整数n,表示年数。(1<=n<=20)
输出描述
一个整数,表示统计结果。
源代码
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int prev = 0, curr = 1, next;
for (int i = 1; i <= n; i++) {
next = curr + prev;
prev = curr;
curr = next;
}
cout << prev << endl;
return 0;
}
这里使用了斐波那契数列的思想。假设在第n年春季时母牛M共有f(n)头后代母牛,那么f(n)等于前一年的后代母牛f(n-1)和当年新生产的小母牛之和。而当年新生产的小母牛数量恰好等于前一年成熟的母牛数量,即f(n-2)。因此,我们可以使用类似斐波那契数列的递推公式来计算f(n)。
具体地,我们用三个变量prev、curr和next分别表示f(n-2)、f(n-1)和f(n),并依次更新这三个变量。最终输出prev即可得到答案。
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END