已知f[0]=f[1]=1 f[2]=0 f[n]=f[n-1]+f[n-3] 求 f[0]~f[50]的最大值

来源:互联网 发布:淘宝一键发货 编辑:程序博客网 时间:2024/04/29 06:09
已知f[0]=f[1]=1 f[2]=0 f[n]=f[n-1]+f[n-3] 求 f[0]~f[50]的最大值
  看到这个题目我的第一想法是利用递归 ,用了之后发现递归不出啊 百度了一下
发现高手原来是这么简单的 如下:
#include
using namespace std;

int main ()
{ int i,max=-1,a[50];a[0]=1;a[1]=1;a[2]=0;
for (i=3;i<50;i++)
{
      a[i]=a[i-1]-2*a[i-2]+a[i-3];
 if(a[i]>max) max=a[i];
}
cout<<max<<endl;
return 0;
}
好简单啊