含义:
递归函数是一种函数调用自身的函数。在递归函数中,函数体内部包含对自身的调用,从而实现了函数的递归调用。
递归函数通常包含两个部分:
-
终止条件:递归函数中需要定义一个或多个基本情况,当满足基本情况时,递归函数会停止调用自身,避免无限循环。基本情况通常是特定的输入或边界条件,不需要再进行递归调用。
-
递归调用:递归函数会在满足基本情况之外的情况下,调用自身来解决更小规模的子问题。递归调用会将问题分解为更小的子问题,直到达到基本情况为止。
注意点:
- 确保递归调用能够趋向于基本情况,避免无限递归导致栈溢出。
- 确保每次递归调用时,问题的规模都能够缩小,否则递归函数可能无法终止。
#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;
}