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;
}