一个常见的c语言编程问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 18:29:56
已知:f(0)=f(1)=1 f(2)=0 f(n)=f(n-1)-2*f(n-2)+f(n-3) (n>2)
求f(0)到f(50)中的最大值。

#include<stdio.h>
main()
{
int f[51],i,max=1;
f[0]=f[1]=1;
f[2]=0;
for(i=3;i<=50;i++)
{
f[i]=f[i-1]-2*f[i-2]+f[i-3];
if(max<f[i])max=f[i];
}
printf("%d",max);
}

绝对正确。。。原创

main()
{
int MAX =0;
int T0 = 1,T1 = 1,T2 = 0,T3;
MAX = T0;
for(int i=3;i<=50;i++)
{
T3 = T2 - 2*T1 + T0;
T0 = T1;
T1 = T2;
T2 = T3;
if(T3 > MAX)
MAX = T3;
}
printf("%d\n",sum);
}