天津做网站联系方式,wordpress增加购物车,常德网站建设求职简历,泉州高端网站建设在原始跳台阶问题上#xff0c;我们知道只走1#xff0c;2阶台阶的话#xff0c;可以推出来斐波那契数列的形式进行计算操作。但是#xff0c;在这里就是1#xff0c;2#xff0c;3#xff0c;...n阶台阶了。其实思路是一样的。
在原始台阶问题#xff0c;我们的状态方…在原始跳台阶问题上我们知道只走12阶台阶的话可以推出来斐波那契数列的形式进行计算操作。但是在这里就是123...n阶台阶了。其实思路是一样的。
在原始台阶问题我们的状态方程是f(n)f(n-1)f(n-2)的这里解释为选择走一阶台阶那么剩下有f(n-1)种走法走2阶台阶有f(n-2)种走法同理走3阶台阶剩下f(n-3)种走法......
以此类推之后我们得出了f(n)f(n-1)f(n-2)f(n-3)...f(1)f(0).的状态方程这样我们就可以解出来了。
注意其实状态方程列出来之后是一个递归的过程我们需要知道这是怎么计算出来的那么n0,1时都是一种解法n2时就是2种解法了而到了n3的时候就是f(3)f(2)f(1)f(0)了这个时候f(3)就是4了。以此类推我们可以发现f(n)2^(n-1)这样我们就可以放心递归了或者你直接用这个式子计算返回值就行。
上代码
#include iostream
#includecmath
#define MAX 100
using namespace std;
typedef long long LL;LL sum(int n){if(n0)return 1;else if(n1)return 1;else if(n2)return 2;elsereturn 2*sum(n-1);}
int main() {int n;cinn;coutsum(n)endl;
}