递归算法思路:
第一步: 将规模较大的问题分解成一个或多个规模更小/但具有类似于原问题特性的子问题.
第二步: 确定一个或多个无需分解/课直接求解的最小子问题.(称为递归的终止条件.
递归的两个基本要素:
1. 递归关系式(递归体):确定递归的方式,即原问题是如何分解为子问题的
2. 递归出口: 递归的终止条件.
f(1) = 1;
f(2) = 2;
f(3) = 3
......
f(n) = f(n-1) + f(n-3) n>3
该问题的递归终止条件是n<4; f(n) = n;
#include<iostream>
using namespace std;
int cow(int n)
{
if(n<4)//递归出口
return n;
else
return cow(n-1)+cow(n-3);
}
int main()
{
int n;
cin>>n;
cout<<cow(n)<<endl;
return 0;
}