看看哪里错了。按照素组来求

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

题目(1).已知:
f(0)=f(1)=1
f(2)=0
f(n)=f(n.-1)-2f(n-2)+f(n-3) ( n>2 )
求f(0)到f(50)的所有51个值中的最大值。 598325

#include<stdio.h>
int main(void)
{

int a[51] = { 1,1,0 };
int max =a[2];
for (int i = 3 ;i < 52; i++) 
{
    a[i] = a[i - 1] + 2*a[i - 2] + a[i - 3];
    if (a[i] > max) 
    {
        max = a[i];
    }
}
printf("max is %d\n", max);
return 0;

}

a[i] = a[i - 1] + 2a[i - 2] + a[i - 3];
符号错了
a[i] = a[i - 1] - 2
a[i - 2] + a[i - 3];

望采纳!谢谢

迭代太慢了!!!

#include<stdio.h>
int fun(int n);

int main() {
int max = 0,i=0;
for (i = 1; i <= 50; i++) {
if (max < fun(i)) max = fun(i);
}
printf("%d", max);
getchar();
return 0;
}

int fun(int n) {
if (n >= 3) return fun(n - 1) - 2 * fun(n - 2) + fun(n - 3);
else if (n == 2) return 0;
else return 1;
}