1.问题描述
一只青蛙可以一次跳一级台阶,也可以一次跳两级台阶,如果青蛙要跳上n级台阶有多少种跳法?
2.问题分析
当台阶只有一级时,只能跳一级,所以只有一种跳法
当台阶有两级时,可以先跳一级,再跳一级,或者直接跳两级
所以有两种跳法
当台阶有三级时,可以这么来思考,
假如先跳一级,剩下的就是二级台阶的情况,
如果先跳两级,那么剩下的一级,剩下的就是一级台阶的情况,
则三级台阶的跳法等于前两级台阶之和,
假如是五级台阶,可以先拆为四级和三级,再把四级和三级往下拆解即可
所以前两次台阶数量等于跳法
当台阶数量大于二时,可以看成斐波拉契数列来计算:n = (n-1) + (n-2)
3.全部代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int frog(int n)
{
if (n <= 2)
return n;
//当台阶级数小于等于2时的跳法
else
return frog(n - 1) + frog(n - 2);
//当台阶级数大于2时的跳法
}
int main()
{
int n = 0;
scanf("%d", &n);
//可以随机输入台阶的级数
int m = frog(n);
//创建一个frog函数
printf("%d\n", m);
}
4.结语
今天的经验分享就到这里,有喜欢的朋友可以点赞➕评论➕收藏➕关注,如果有不懂的地方可以咨询博主,谢谢大家支持博主!