(13年)考察递归:已知一个数列为1,1,2,5,13,34,。。。。N。除了第1,2项为1以外,其他各项是前一项的3倍与再前一项的差。设计递归函数,int fn(int n),求出任意第n项的数值。

考察递归:已知一个数列为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数列的变形,注意输入输出的提示语句写完整,注意使用题目要求的函数名~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值