当前位置:网站首页>《c语言》青蛙跳台阶递归问题
《c语言》青蛙跳台阶递归问题
2022-07-31 06:42:00 【郭郭学习之旅】
题目:
一只青蛙可以一次跳 1 级台阶或一次跳 2 级台阶,例如:跳上第一级台阶只有一种跳法:直接跳 1 级即可。跳上两级台阶,有两种跳法: 每次跳 1 级,跳两次; 或者一次跳 2 级.问要跳上第 n 级台阶有多少种跳法?
思路分析:
首先我们可以考虑到,青蛙在只有一层台阶的时候只会有一种跳法,在两层台阶的时候会有两种跳法

那么我们尝试考虑一下如果有三个台阶呢,小青蛙可以有了多种选择,他可以选择一个一个

也可以选择第一次跳一个台阶,第二次直接跳两个台阶

还可以选择第一次跳两个台阶,然后再跳一个台阶

那么综上所述,我们可以得到
如果有一个台阶的话,小青蛙有一种跳法;
如果有两个台阶的话,小青蛙有两种跳法;
如果有三个台阶的话,小青蛙有三种跳法;
如果有四个台阶的话,小青蛙有五种跳法;
……………………
那么我们可以考虑到,无非小青蛙的跳法就是n-1个台阶的跳法次数+n-2个台阶的跳法次数
所以我们代码可以如下所示
int frog(int n) {
if (n == 1)return 1;
else if (n == 2)return 2;
else return frog(n - 1) + frog(n - 2);
}
好了本次思路就分享到这~~感谢大家三连支持
边栏推荐
猜你喜欢

【科普向】5G核心网架构和关键技术

【解决】mysql本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止

Fund investment advisory business

R——避免使用 col=0

电脑开机密码怎么设置?如何给你的电脑加上“安全锁”

金融租赁业务

Zabbix6.2 Surprise Release!Especially optimize the performance of medium and large environment deployment!

那些破釜沉舟入局Web3.0的互联网精英都怎么样了?

Financial leasing business

MySQL详解
随机推荐
nohup principle
Embedded system driver primary [2] - _ parameters and dependencies under the kernel module
Navicat new database
机器学习---线性回归、Logistic回归问题相关笔记及实现
2022.07.24_每日一题
2022.07.29_Daily Question
Chapter 17: go back to find the entrance to the specified traverse, "ma bu" or horse stance just look greedy, no back to search traversal, "ma bu" or horse stance just look recursive search NXM board
我开发了一个利用 Bun 执行 .ts / .js 文件的 VS Code 插件
HighTec 的安装与配置
'vite' is not an internal or external command, nor is it a runnable program or batch file.
2022.07.18 _ a day
2022.07.22 _ a day
在 ASP.NET Core 应用程序启动时运行代码的 3 种方法
2022.07.24_Daily Question
解决安装 Bun 之后出现 zsh compinit: insecure directories, run compaudit for list. Ignore insecure directorie
基于LSTM的诗词生成
sort函数(快速排列)的使用方法
2. (1) Chained storage of stack, operation of chain stack (illustration, comment, code)
熟悉而陌生的新朋友——IAsyncDisposable
gstreamer's caps event and new_segment event