目录
1. 题目描述
一直青蛙一次可以跳上1级台阶,也可以跳上2级台阶,求该青蛙跳上一个n级台阶总共有多少种跳法?
2. 题目分析
我将用图解的方式枚举n<=4的情况,再带大家探寻其中蕴含的道理,那么废话不多说图解如下:
我已经列举了前四种的结果,我们其实可以总结其中的规律,已知青蛙一次只能跳一级或两级台阶,当n=3时,假设青蛙先跳一级台阶,还剩下两级台阶,两级台阶的跳法是2种。在假设青蛙先跳两级台阶,还剩下一级台阶,一级台阶显而易见只有1种。那么三级台阶跳法就是1+2=3种。在检验n=4、n=5时同时成立,说明这就是解决这类问题的通法。
其实不难发现青蛙跳台阶问题就是斐波那契数列类似问题。
知道了原理,看看代码的实现:
//青蛙跳台阶问题(函数递归经典问题)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int frog(int x)
{
if (1 == x)
{
return 1;
}
if (2 == x)
{
return 2;
}
return frog(x - 1) + frog(x - 2);
}
int main()
{
int n = 0;
scanf("%d", &n);
int num = frog(n);
printf("方法有%d种", num);
return 0;
}
当我们输入想要的n的值时,就会产生想要的结果:
今天分享就到这里,希望大家一起提高!