母牛的故事

母牛的故事

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 48   Accepted Submission(s) : 38

Font: Times New Roman | Verdana | Georgia

Font Size:

Problem Description

有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

Input

输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。

Output

对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。

Sample Input

2
4
5
0

Sample Output

2
4
6


#include <iostream>
using namespace std;
int main()
{
    int n;
    int f[60];
    f[1]=1;f[2]=2;f[3]=3;
    for(int i=4;i<56;++i)
        f[i]=f[i-3]+f[i-1];
    while(cin>>n&&n>0)
    {
        cout<<f[n]<<endl;
    }
    return 0;
}
#include <iostream>
using namespace std;
int main()
{
    int n;
    int f[60];
    f[1]=1;f[2]=2;f[3]=3;
    for(int i=4;i<55;++i)
        f[i]=f[i-3]+f[i-1];
    while(cin>>n&&n>0)
    {
        cout<<f[n]<<endl;
    }
    return 0;
}
/*第一头小牛于第二年出生,也就是说,第一年只有第一头母牛存在。第一头小牛在第四年开始产崽,说明成熟期是三年(周期为三)。
所以列出了递归表达式:f(n)=f(n-1)+f(n-3)。*/
#include <iostream>
#include<math.h>
using namespace std;
int f(int n)
{
    if(n>4)
        return f(n-1)+f(n-3);
    else 
        return n;
}
void main ()
{
    int n;
    while(cin>>n&&n>0)
    {
    cout<<f(n)<<endl;
    }
}




posted @ 2014-05-01 13:27  lazypark  阅读(122)  评论(0编辑  收藏  举报