考察递归:已知一个数列为1,1,2,5,13,34,。。。。N。除了第1,2项为1以外,其他各项是前一项的3倍与再前一项的差。设计递归函数,int fn(int n),求出任意第n项的数值。编写main函数,并利用fn函数,求前n项的总和,n由键盘输入。
int fn(int n)
{
if(n==1||n==2) return 1;
else return 3*fn(n-1)-fn(n-2);
}
int main()
{
int n,sum=0;
printf("请输入n的值:\n");
scanf("%d",&n);
int term_now=fn(n);
printf("第%d项的和为:%d\n",n,term_now);
for(int i=1;i<=n;i++)
{
sum=sum+fn(i);
}
printf("前%d项的和为:%d",n,sum);
return 0;
}
考察核心:其实是fibonacci数列的变形,注意输入输出的提示语句写完整,注意使用题目要求的函数名~