急··编程题

来源:百度知道 编辑:UC知道 时间:2024/05/26 05:50:45
已知数列{f(n)}:f(1)=1,f(2)=1,当n>2时f(n)=3*f(n-2)-f(n-1)。试求此数列的前22项中所有正数项之和。

int f(int n)
{
if(n==1||n==2)return 1;
else
return 3*f(n-2)-f(n-1);
}
int sumn(int n)
{
int temp =0;
if(n==1)return 1;
if(n==2)return 2;
for(int i=1;i<23,i++)
{
if(f(i)>0)
temp+=f(i);
}
return temp;
}

对上楼稍作修改:
int f(int n)
{
if(n==1||n==2)return 1;
else
return 3*f(n-2)-f(n-1);
}
int sumn(int n)
{
int temp =0;
if(n==1)return 1;
else if(n==2)return 2;
else
{
temp+=2;
for(int i=3;i<23,i++)
{
if(f(i)>0)
temp+=f(i);
}
}
return temp;
}