解决斐波那契数列(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)
如有不足,还望斧正!

全部评论

相关推荐

废铁汽车人:秋招真是牛鬼蛇神齐聚一堂
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务