这个要用递归做。到某一阶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 种走法。
可以用枚举法和归纳法来解答。
一、枚举法
11级台阶,如果每次跨2级,最多可跨5次。所以,可以分六种情况来考虑:
2、有一次跨二级台阶,其余每次都跨一级台阶,这样的走法有9种。
3、有两次跨二级台阶,其余每次都跨一级台阶,这样的走法有8+7+6+5+4+3+2+1=36种。
4、有三次跨二级台阶,其余每次都跨一级台阶,这样的走法有(6+5++4+3+2+1)+(5+4++3+2+1)+(4+3+2+1)+(3+2+1)+(2+1)+1=56种。
5、有四次跨二级台阶,其余每次都跨一级台阶,这样的走法有36种。(算式略)
6、有五次跨二级台阶,其余每次都跨一级台阶,这样的走法有6种。
所以,一共有1+9+36+56+36+6=144种
二、归纳法
1、假如只有1级台阶,那么只有1种走法。
2、假如只有2级台阶,那么只有2种走法。
3、假如只有3级台阶,那么只有3种走法。
4、假如只有4级台阶,那么只有5种走法。
……
根据上面的假设,可以得到一个数列:
1 2 3 5 ……
分析可得:从第三项起,每项都是前两项的和,根据这个规律推算,第11项应该是144。
以上就是关于c语言上台阶答案全部的内容,包括:c语言上台阶答案、走11节台阶,每步走一级或两级有多少种走法、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)