你是真的“C”——函数递归详解青蛙跳台阶

简介: 手把手教学——函数递归详解汉诺塔+青蛙跳台阶问题
   哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘

函数递归之青蛙跳台阶详解分析🙌

青蛙跳台阶的问题是什么样的问题?😊

青蛙跳台阶问题简述: 😍
   ==一只青蛙可以一次跳 1 级台阶或一次跳 2 级台阶==。例如:跳上第一级台阶只有一种跳法:直接跳 1 级即可。跳上两级台阶,有两种跳法: 每次跳 1 级,跳两次; 或者一次跳 2 级。问要跳上第 n 级台阶有多少种跳法?

在这里插入图片描述

青蛙跳台阶的跳动图解:🙌

看了上述文字讲解,大家可能还是不够理解,这里已3层台阶为例,分析青蛙跳法和具体过程: 😍
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

   理清楚思路之后,我们不能发现,青蛙跳台阶的问题也是可以通过==函数递归==的方法来实现的。
青蛙跳台阶递归代码实现: 😍

int Frog(int n)
{
    if (n == 1)
        return 1;
    else if (n == 2)
        return 2;
    else if (n >= 3)
        return Frog(n - 1) + Frog(n - 2);
}
#include<stdio.h>
int main()
{

    int n = 0;
    scanf("%d", &n);
    int ways = Frog(n);
    printf("跳%d阶台阶方法总数为:%d\n", n, ways);
    return 0;
}

代码测试结果图: 😍
在这里插入图片描述
**当 n = 4时
Frog (4)
= Frog(3)+ Frog(2)

                                  = Frog (2) + Frog(1)+ Frog(2)
                                  = 2 + 1 +2
                                  = 5**



总结撒花💞

青蛙跳台阶的问题,其实和求斐波那契数列的方法很相似,大家对比理解一下就好啦!==本篇文章旨在带领大家使用函数递归的知识来求解经典的青蛙跳台阶问题==。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘
相关文章
|
存储 JSON 大数据
大数据离线数仓---金融审批数仓
大数据离线数仓---金融审批数仓
865 1
|
5月前
|
人工智能 运维 Prometheus
别只盯着监控图了,大模型才是服务质量的新保镖!
别只盯着监控图了,大模型才是服务质量的新保镖!
143 13
|
7月前
|
机器学习/深度学习 人工智能 算法
Stable Virtual Camera:2D秒变3D电影!Stability AI黑科技解锁无限运镜,自定义轨迹一键生成
Stable Virtual Camera 是 Stability AI 推出的 AI 模型,能够将 2D 图像转换为具有真实深度和透视感的 3D 视频,支持自定义相机轨迹和多种动态路径,生成高质量且时间平滑的视频。
327 0
Stable Virtual Camera:2D秒变3D电影!Stability AI黑科技解锁无限运镜,自定义轨迹一键生成
|
消息中间件 存储 算法
一文详解 RocketMQ 如何利用 Raft 进行高可用保障
本文介绍 RocketMQ 如何利用 Raft(一种简单有效的分布式一致性算法)进行高可用的保障,总结了 RocketMQ 与 Raft 的前世今生。可以说 Raft 的设计给 RocketMQ 的高可用注入了非常多的养分,RocketMQ 的共识算法与高可用设计在 2023 年也得到了学术界的认可,被 CCF-A 类学术会议 ASE 23' 录用。
819 108
ORA-08002: 序列 SEQ_GX.CURRVAL 尚未在此会话中定义
ORA-08002: 序列 SEQ_GX.CURRVAL 尚未在此会话中定义 这是因为在一个新的会话中,序列需要初始化,也就是通过.NEXTVAL来完成序列的初始化。
2258 0
|
存储 应用服务中间件 nginx
成功解决:nginx: [emerg] unexpected “}“ in /etc/nginx/conf.d/gulimall.conf:10
这篇文章详细介绍了Linux虚拟机磁盘空间不足时的扩容流程,从外部配置到具体扩容操作,再到验证扩容效果的步骤。同时,也探讨了Docker容器磁盘空间耗尽的问题,并提供了解决方案,包括删除无用镜像和容器,以及如何重新配置Docker的存储位置。文章还涵盖了一些意外情况的处理方法,比如误删容器后的恢复策略,并最终展示了使用Docker安装nginx并成功访问的详细过程。
成功解决:nginx: [emerg] unexpected “}“ in /etc/nginx/conf.d/gulimall.conf:10
|
搜索推荐 Android开发 开发者
Android应用开发:实现自定义ViewPager2的完全指南
【5月更文挑战第23天】 在移动应用开发的领域中,为用户提供流畅且直观的界面体验至关重要。Android平台上的ViewPager2组件提供了一个强大的方式来实现可滑动的页面,但有时候默认的行为和样式可能无法满足特定的设计要求。本文将深入探讨如何通过创建一个自定义的ViewPager2来扩展其功能,包括实现新的转换效果、修改指示器样式以及增加触摸事件响应等。我们将提供详尽的步骤和代码示例,帮助开发者掌握创建高度定制的ViewPager2所需的关键概念和技术。
|
安全 应用服务中间件 数据安全/隐私保护
一文秒会Docker网络(bridge,host,none)
一文秒会Docker网络(bridge,host,none)
459 0
|
弹性计算 容灾 网络安全
阿里云服务器专有网络是什么?可用区随机怎么选?
2023阿里云服务器专有网络是什么?可用区随机怎么选?阿里云服务器网络及可用区,网络指的是专有网络VPC,可用区是指同一个地域下网络和电力相互独立的区域,专有网络是用户在云端的私有网络,专有网络之间逻辑上彻底隔离,用户可以在专有网络上设置IP地址段、交换机和路由表等。阿里云百科来详细说下什么是专有网络以及可用区选择方法:
443 0
阿里云服务器专有网络是什么?可用区随机怎么选?
|
关系型数据库 OLAP OLTP