think:
1递推思想——动态变化,之前的座位问题有一种分类讨论的思想,而这个题目感觉在递推规律的寻找中展现着一种动态规律变化的思想,题目题点之一在母牛从第二年年初生一头小母牛,每头小母牛从第四个年初开始生一头小母牛,需要注意的是小母牛再生母牛与其出生的年之间相差的是三年,枚举情况的时候可以把每一年不同岁数牛的不同数目枚举出来,这样有利于推演下一年的母牛数,其实当前年的母牛数等于前一年的母牛数加上新出生的母牛数,同样蕴含着数学中分类讨论进而归纳规律的解决问题的思想,之前的推演就是为了得到新出生的母牛数,递推规律为f(n) = f(n-1)+f(n-3)
2分类讨论进而寻找规律进而归纳规律进而用规律式进行表示进而解决实际问题,展现了一种探索规律的思想方法
母牛的故事
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
有一对夫妇买了一头母牛,它从第2年起每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
Input
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0< n< 55),n的含义如题目中描述。 n=0表示输入数据的结束,不做处理。
Output
对于每个测试实例,输出在第n年的时候母牛的数量。 每个输出占一行。
Example Input
2
4
5
0
Example Output
2
4
6
Hint
Author
HDOJ
以下为accepted代码
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int main()
{
int n, i;
long long ans[64];
ans[1] = 1;
ans[2] = 2;
ans[3] = 3;
for(i = 4; i <= 55; i++)
{
ans[i] = ans[i-1] + ans[i-3];
}
while(scanf("%d", &n) && n != 0)
{
printf("%lld\n", ans[n]);
}
return 0;
}
/***************************************************
User name:
Result: Accepted
Take time: 0ms
Take Memory: 152KB
Submit time: 2017-03-25 15:20:21
****************************************************/

博客探讨了使用递推思想解决母牛生育问题的方法,强调动态规律变化的重要性。每头母牛从第二年开始每年生一头小母牛,小母牛在第四年开始也如此。递推公式为f(n) = f(n-1) + f(n-3)。通过分类讨论和规律推演求解第n年时的母牛总数。
8358

被折叠的 条评论
为什么被折叠?



