解决斐波那契数列(3)超生的母牛
时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)
题目描述
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
输入描述:
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
输出描述:
对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。
输入例子:
2
4
5
输出例子:
2
4
6
这个题目的具体思路就是找到它的模型,也就是
F(n) = F(n-1)+F(n-3)(其中n>=4)
找到之后,我们就可以利用数组填充法,其中需要注意的是,这个题目中对n的要求并不大。
#include <stdio.h> #include <stdlib.h> int main(){ long arr[56]; arr[1] = 1; arr[2] = 2; arr[3] = 3; arr[4] = 4; arr[5] = 6; int i,n; for(i = 4;i<56;i++){ arr[i] = arr[i-1]+arr[i-3]; } while( scanf("%d",&n)!=EOF){ printf("%ld\n",arr[n]); } return 0; }
另外有一点需要注意的是对循环条件的控制
while( scanf("%d",&n)!=EOF)
如有不足,还望斧正!