[递归]一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
这题是用C写的~
在牛客上半天找不着ACM模式,练习模式里只有核心代码模式
这样用C语言编译器就不能自定义函数啊,不鸡肋吗???
解决方法:在核心代码模式下用C++编译器(反正C++完全兼容C的不是吗~~)
但是这样并不好,很气!
题目描述
描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
示例1
输入:
2
返回值:
2
示例2
输入:
7
返回值:
21
解题思路
- 简单递归,别说青蛙跳台阶了,兔子下楼也是一样的
- 理解递归的思想很重要,至于什么是递归这里不多赘述(自行百度)
- 常见的递归:斐波那契数列(1,1,2,3,5,8,13…)
- 本题也是斐波那契哦~
- 在递归时,往往需要自己调用自己,判断好停止时机很重要
- 理解什么时候
sum++
:撞墙(搜索到头了)表示你已经走出了一条路,此时sum++
- sum表示路径数量
- 如果还不会,建议画图,本题是一个标准的二叉树,还是满二叉树,数叶子结点的个数
- 一般递归都是数叶子结点的个数,如果不好理解自己调用自己,可以去理解一下二叉树
- 当然我给出的题解是用递归做的,但是你如果观察除了斐波那契,那肯定是直接斐波那契时间复杂度低啊! 用一个数组存一串斐波那契,返回第n项
a[n]
就很完美了,保证AC - 公式:求第n个斐波那契数
- 如果你想快速得到一个存有斐波那契数列的数组,用一个
for
循环不就可以搞定了么?时间复杂度O(n)
,真香啊!
题解
我的代码(完整版)
#include<stdio.h>
#include<math.h>int sum = 0;
void jump(int step, int number)
{if (step >= number){sum++;return;}else{jump(step + 1, number);if (step + 2 <= number)jump(step + 2, number);}return;
}int jumpFloor(int number )
{sum = 0;jump(0, number);return sum;
}int main()
{// for testprintf("%d", jumpFloor(7));return 0;
}
在牛客上提交时的代码(真的无力吐槽了)
[递归]一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。相关推荐
- 牛客网刷题java之(斐波那契数列)一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 分析: 对于本题,前提只有 一次 1阶或者2阶的跳法. a.如果两种跳法, ...
- (java)跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
文章目录 题目描述 思路 解法一:递归暴力破解 解法二: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路 解法一 ...
- 一只青蛙一次可以跳上1级台阶,也可以跳上2级,也可以跳n级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)
青蛙跳阶级问题其实就是一个递归的问题 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级,也可以跳n级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 先上解法再解释 pub ...
- 算法:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 青蛙每一次跳跃只有两种选择:一是再跳1级阶梯到达第n级阶梯,此时小青蛙处于第n-1级阶梯;或者再跳 ...
- 【python逻辑算法题】一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法
文章目录 一.题目描述 二.问题分析 三.代码分析与逻辑(python3实现) 四.源码及运行结果 总结 提示:以下是本篇文章正文内容: 一.题目描述 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2 ...
- c语言青蛙游戏,c语言:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?...
一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法? 解:把n级台阶时的跳法记为f(n),当n>2时,第一次跳的时候有两种不同的选择:一是第一次只跳1级,此 ...
- 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?(递归与动态规划)
一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法? private static HashMap<Integer, Long> record = n ...
- 牛客网刷题java之变态跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 其实和普通的只能跳一个和两个台阶的思路是一样的,都是为了求迭代表达式. ...
- 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
import java.util.Scanner;/* 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.请用递归和循环2中方法实现答案来源:https://w ...
最新文章
- Linux qgis 编译,QGIS简介与源代码编译
- 弃Java、Swift于不顾,为何选Python?
- centos 升级4.0 内核
- ACE-Task结构介绍(二)——消息块ACE_Message_Block结构的分析
- mysql不能设置密码_mysql不能设置密码
- 主动安全,新华三融合生态之力!
- 开发指南专题十六:JEECG微云快速开发平台Excel导出
- Linux 大文件拷贝失败,linux – Rsync失败,“文件太大”
- 二叉树的遍历 C/C++语言实现
- java 挥发注解_C中的挥发性预选赛
- error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
- 面试 AI 算法岗,你被要求复现顶会了嘛?
- 重庆市计算机一级考试2015,2015年计算机一级考试试题及答案
- html去掉右侧滚动条,html中去掉textarea右侧滚动条和右下角拖拽
- Win10问题篇:一次性永久关闭win10系统自动更新
- C#即时通讯(局域网QQ)
- 一生从未打过败仗的“杀神”白起是怎么死的?
- 一些临时邮箱服务网站
- JQuery.validate验证表单后Ajax异步提交
- 超全面UI基础设计规范
热门文章
- 2022-2028年中国文化创意产业园区域发展模式与产业整体规划研究报告
- NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存
- linux 下根据cpp文件快速书写头文件
- Apriori算法通俗详解_fpgrowth2_关联分析评估
- 聚类和EM算法——K均值聚类
- 线程的状态、调度、同步
- LeetCode简单题之分割平衡字符串
- 操作系统学习笔记 第六章:设备管理(王道考研)
- 2021年大数据Spark(三十七):SparkStreaming实战案例二 UpdateStateByKey
- Java基础入门语法和安装