青蛙跳台阶递归问题的解释与延申
题意说明
一只青蛙可以一次跳 1 级台阶或一次跳 2 级台阶,例如:跳上第一级台阶只有一种跳法:直接跳 1 级即可。跳上两级台阶,有两种跳法: 每次跳 1 级,跳两次; 或者一次跳 2 级.问要跳上第 n 级台阶有多少种跳法?
解题思路
我们设台阶数位N;
当N=1时,当然只有1种跳法;
当N=2时,青蛙可以跳2次1层和跳1次2层;
当N=3时,当有3层台阶时,青蛙可以选择先跳1层,剩下2层台阶,所以此时就是有2层台阶时的跳法,有2种;当青蛙选择第一次跳2层台阶时,剩下1层台阶,此时有1层台阶时的跳法,所以3层台阶时的方法是:2层台阶的方法 + 1层台阶的方法。
当N=4时,具体跳法为: 1、先跳1层 若先跳1层,则剩下3层,接下来就是3层台阶的跳法。 2、先跳2层 若先跳2层,则剩下2层,接下俩就是2层台阶的跳法,所以4层台阶的方法为:3层台阶的方法+2层台阶的方法。
以此类推,当N=n时,n层台阶的方法为: n-1层台阶的方法+ n-2 层台阶的方法。
#include<stdio.h>
int frog(int n)
{
if(n == 1)
{
return 1;
}
if(n == 2)
{
return 2;
}
return frog(n-1) +