递归函数重点简述

含义

递归函数是一种函数调用自身的函数。在递归函数中,函数体内部包含对自身的调用,从而实现了函数的递归调用。

递归函数通常包含两个部分:

  1. 终止条件:递归函数中需要定义一个或多个基本情况,当满足基本情况时,递归函数会停止调用自身,避免无限循环。基本情况通常是特定的输入或边界条件,不需要再进行递归调用。

  2. 递归调用:递归函数会在满足基本情况之外的情况下,调用自身来解决更小规模的子问题。递归调用会将问题分解为更小的子问题,直到达到基本情况为止。

注意点:

  • 确保递归调用能够趋向于基本情况,避免无限递归导致栈溢出。
  • 确保每次递归调用时,问题的规模都能够缩小,否则递归函数可能无法终止。

题目牛牛学数列6 (nowcoder.com)

#include<bits/stdc++.h>
#define int long long
#define PII pair<int,int>
#define LL __int128
using namespace std;

const int N = 2e5+10,M = 1e3+10,mod = 9982443543,INF = 0x3f3f3f3f;
int a[N],b[N];
//递归函数
int An(int n)
{
    if(n==2||n==3)
    {
        return 1;
    }else if(n==1)
    {
       return 0;
    }else {
        return An(n-3)+2*An(n-2)+An(n-1);
    }
}

signed main()
{
	std::ios::sync_with_stdio(false);
	std::cin.tie(NULL);
    int n;
    cin>>n;
    int sum=An(n);
    cout<<sum<<endl;
  return 0;
}

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值