跳台阶算法 不允许连续跳两次,算法怎么写
N(n)函数为n阶梯有N(n)种跳法
M(n)函数为n个台阶中最后一跳连续跳两格的次数
#include <iostream>
using namespace std;
int N(int n);
int M(int n);
int main()
{
int n;
cout << "Enter n" << endl;
cin>> n;
int p= N(n);
cout << p<<endl;
return 0;
}
int N(int n)
{
if (n<5)
return n;
else
return N(n - 1) + N(n - 2)-M(n-2);
}
int M(int n)
{
if (n==0)
return 0;
if (n<4)
return 1;
else
return N(n-2)-M(n-2);
}