题目:
一只青蛙想要到第N个台阶上,它可以选择一次跳一级台阶或一次跳二级台阶,请问青蛙要到N级台阶上,请问有几种跳法
解题思路:
我们设台阶数位N;
当N=1时,当然只有一种跳法
当N=2时,青蛙有二种跳法:可以一层层跳和一次跳二层
当N=3时,青蛙有三种跳法:
如果青蛙先选择先跳1层,剩下2层台阶,剩下就是第二层台阶时的跳法,所以3层台阶时的方法是:2层台阶的方法 + 1层台阶的方法。
当N=4时,青蛙有五种跳法:具体方法为: 1、先跳1层 若先跳1层,则剩下3层,接下来就是3层台阶的跳法。 2、先跳2层 若先跳2层,则剩下2层,接下俩就是2层台阶的跳法,所以4层台阶的方法为:3层台阶的方法+2层台阶的方法。
总结:
当青蛙想到第N个台阶时,有第N-1层方法+N-2层方法
公式:N = (N-1)+(N-2)
代码实现:
递归方法
int Recu(int n)
{
if (n == 1)
{
return 1;
}
else if (n == 2)
{
return 2;
}
else
return Recu(n - 1) + Recu(n - 2);
}
int main()
{
int n;
scanf("%d", &n);
int ret = Recu(n);
printf("%d\n", ret);
return 0;
}