C语言|C语言 递归解决青蛙跳台阶问题
目录
- 前言
- 一、求解思路
- 二、代码实现
- 1.参考代码
- 2.运行结果
- 总结
文章图片
前言 一只青蛙一次可以跳1级或2级台阶,求当台阶数为n时青蛙有多少种跳法。
一、求解思路 台阶的数量为n。
当 n = 1 时,青蛙有一种跳法,即跳1级台阶。
当 n = 2 时,青蛙有两种跳法,即跳两次1级台阶或跳一次2级台阶。
当 n = 3 时,青蛙可以先跳2级台阶再跳1级台阶,也可以选择先跳1级台阶再跳2级台阶,或者是跳三次1级台阶。依次类推,我们就能知道台阶数为n时青蛙的跳法。
但是,这样子是不是很麻烦呢,再仔细想一下。
还是当 n = 3 时,我们选择先跳1级台阶,剩下的2级台阶的跳法,是不是就是当 n = 2 时青蛙的跳法;我们选择先跳2级台阶,剩下的1级台阶的跳法,是不是就是当 n = 1 时青蛙的跳法。
由此可知,n = 3 时青蛙的跳法为 n = 1 时的跳法加上 n = 2 时的跳法。
当 n = N 时,N个台阶的跳法为 N-1 的跳法加上 N-2 的跳法。
乍一看,是不是感觉和斐波那契数列有点像,当然,还是有一丢丢不一样的,不过我们可以用同样的数学思想来解决这个问题。
二、代码实现
1.参考代码
#define _CRT_SECURE_NO_WARNINGS 1#include int flog(int n){ if (n == 1) return 1; else if (n == 2)return 2; elsereturn flog(n - 1) + flog(n - 2); }intmain(){ int n = 0; int ways = 0; printf("请输入台阶的数量:"); scanf("%d", &n); ways = flog(n); printf("青蛙有%d种跳法",ways); return 0; }
2.运行结果
文章图片
总结 孤寡 孤寡 孤寡
【C语言|C语言 递归解决青蛙跳台阶问题】到此这篇关于C语言 递归解决青蛙跳台阶问题的文章就介绍到这了,更多相关C语言 递归内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- 【生信技能树】R语言练习题|【生信技能树】R语言练习题 - 中级
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- SpringBoot调用公共模块的自定义注解失效的解决
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- 解决SpringBoot引用别的模块无法注入的问题