文章目录
-
- 1.题目
- 2.思考分析
- 3.C语言实现代码
1.题目
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法?
示意图
2.思考分析
青蛙从地面开始跳,具体如下:
如果只有1级台阶,那显然只有一种跳法。
*如果有2级台阶,那么就有2种跳法,一种是分2次跳,每次跳1级,另一种就是一次跳2级。
跳n级台阶的跳法:
从第一级台阶再开始跳,F(n1)=F(n-1)*1
从第二级台阶再开始跳,F(n2)=F(n-2)*2
但是注意,F(2)中1 1的跳法与F(1)中 1的跳法重复
所以计算时,F(n2)=F(n-2)*1
F(n)=F(n1)+F(n2)=F(n-1)+F(n-2)
得到递推关系式 F(n)=F(n-1)+F(n-2)
3.C语言实现代码
//青蛙跳台阶问题#include <stdio.h>int Fun(int n)
{if (n == 1)return 1;else if (n == 2)return 2;else if (n>2)return Fun(n - 1) + Fun(n - 2);}int main()
{int n = 0;scanf("%d", &n);int ret=Fun(n);printf("%d\n", ret);return 0;
}
谢谢欣赏!!