这个要用递归烂搜做。到某一阶n有两种可能,从第n-1上1阶,从第n-2上2阶,因此到达第n阶的的函数f(n)的走法等于f(n-1)+f(n-2),即到达f(n-1)阶的走法与f(n-2)阶的走法之和!
代码如下:
int f( int n ){
if ( n == 1 )
{
return 1
}
else if ( n == 2 )
{
return 2
}
else
{
return f(n-1) + f(n-2)
}
}
int main()
{
int num = f( 10 )
return 0
}
打印带侍出 num 的值得话,可以看到 10 阶共有 89 种走法。蠢历吵
这是一个斐波那契数列或悉,假设跳上 n (n >2) 级台阶有 F(n) 种跳法:上1级台阶:直接跳上,跳法为1;
上2级台阶:先跳台阶1,再跳弯掘台阶2;或者直接跳上台阶2;跳法埋团核总共有2种;
上 n (n >2) 级台阶:有两种选择
(1)从台阶n-1,直接跳到台阶n;则跳法数 F(n - 1)
(2)从台阶n-2,直接跳到台阶n;则跳法数 F(n - 2)
故:F(n) = F(n - 1) + F( n - 2)
F(8) = 34
跳上 8 级台阶有 34 种跳法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)