hdu 2018 母牛的故事

这个跟Fibonacci数列的来源——兔子的故事有一拼

顺便贴上Fibonacci数列的通项公式,传说中的黄金分割数列

递推式有两种:1、f[i] = f[i-1] + f[i-3];

这种比较好理解,第i年的牛就等于去年的加上新生的牛

2、f[i]=f[i-2]+f[i-3]+f[i-4]  这种不是很好理解,就看成f[i-1] = f[i-2]+f[i-4]吧。

不过貌似第二种比第一种耗时间,第一种oj显示0ms,第二种显示15ms,有点不理解。。。

  题目传送门

  

 1 #include<stdio.h>
 2 int main()
 3 {
 4     __int64 f[60]={1,1,2,3};
 5     long i,n;
 6     for(i=4;i<55;i++)
 7         f[i]=f[i-2]+f[i-3]+f[i-4];
 8     while(1)
 9     {
10         scanf("%ld",&n);
11         if(n==0)break;
12         printf("%I64d\n",f[n]);
13     }
14     return 0;
15 }
#include<stdio.h>
int main()
{
    __int64 f[60]={1,1,2,3};
    long i,n;
    for(i=4;i<55;i++)
        f[i]=f[i-1]+f[i-3];
    while(1)
    {
        scanf("%ld",&n);
        if(n==0)break;
        printf("%I64d\n",f[n]);
    }
    return 0;
}

 

posted @ 2013-05-10 10:54  飞向梦  阅读(143)  评论(0编辑  收藏  举报