题目描述:
一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
输入
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。
输出
对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。
样例输入
2
4
5
0
样例输出
2
4
6
分析问题
从题目中可以得知,第一年有一头母牛,每年年初生一头母牛,小母牛四年后也能开始生母牛,如此循环,要求第n年时的总母牛数。很明显这是一个递归问题,那么解决递归问题最重要的便是找到递归表达式。
求解递归表达式
一开始想用单纯的数学方法找到递归式,但是发现脑子不够用,后面一个大佬的方法确实让我看到新的大陆,这里借用那位大佬的方法:首先根据题意可将牛分成四类即:一年牛,二年牛,三年牛,四年牛,用四个数组表示:a[],b[],c[],d[],以及总数s[],接下来可以用一个表格表示前几年的关系:
第一行代表第一年&