这题是用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级的台阶总共有多少种跳法(先后次序不同算不同的结果)。相关推荐

  1. 牛客网刷题java之(斐波那契数列)一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

    题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 分析: 对于本题,前提只有 一次 1阶或者2阶的跳法. a.如果两种跳法, ...

  2. (java)跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

    文章目录 题目描述 思路 解法一:递归暴力破解 解法二: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路 解法一 ...

  3. 一只青蛙一次可以跳上1级台阶,也可以跳上2级,也可以跳n级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)

    青蛙跳阶级问题其实就是一个递归的问题 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级,也可以跳n级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 先上解法再解释 pub ...

  4. 算法:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.

    题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 青蛙每一次跳跃只有两种选择:一是再跳1级阶梯到达第n级阶梯,此时小青蛙处于第n-1级阶梯;或者再跳 ...

  5. 【python逻辑算法题】一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法

    文章目录 一.题目描述 二.问题分析 三.代码分析与逻辑(python3实现) 四.源码及运行结果 总结 提示:以下是本篇文章正文内容: 一.题目描述 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2 ...

  6. c语言青蛙游戏,c语言:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?...

    一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法? 解:把n级台阶时的跳法记为f(n),当n>2时,第一次跳的时候有两种不同的选择:一是第一次只跳1级,此 ...

  7. 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?(递归与动态规划)

    一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法? private static HashMap<Integer, Long> record = n ...

  8. 牛客网刷题java之变态跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 其实和普通的只能跳一个和两个台阶的思路是一样的,都是为了求迭代表达式. ...

  9. 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    import java.util.Scanner;/* 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.请用递归和循环2中方法实现答案来源:https://w ...

最新文章

  1. Linux qgis 编译,QGIS简介与源代码编译
  2. 弃Java、Swift于不顾,为何选Python?
  3. centos 升级4.0 内核
  4. ACE-Task结构介绍(二)——消息块ACE_Message_Block结构的分析
  5. mysql不能设置密码_mysql不能设置密码
  6. 主动安全,新华三融合生态之力!
  7. 开发指南专题十六:JEECG微云快速开发平台Excel导出
  8. Linux 大文件拷贝失败,linux – Rsync失败,“文件太大”
  9. 二叉树的遍历 C/C++语言实现
  10. java 挥发注解_C中的挥发性预选赛
  11. error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
  12. 面试 AI 算法岗,你被要求复现顶会了嘛?
  13. 重庆市计算机一级考试2015,2015年计算机一级考试试题及答案
  14. html去掉右侧滚动条,html中去掉textarea右侧滚动条和右下角拖拽
  15. Win10问题篇:一次性永久关闭win10系统自动更新
  16. C#即时通讯(局域网QQ)
  17. 一生从未打过败仗的“杀神”白起是怎么死的?
  18. 一些临时邮箱服务网站
  19. JQuery.validate验证表单后Ajax异步提交
  20. 超全面UI基础设计规范

热门文章

  1. 2022-2028年中国文化创意产业园区域发展模式与产业整体规划研究报告
  2. NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存
  3. linux 下根据cpp文件快速书写头文件
  4. Apriori算法通俗详解_fpgrowth2_关联分析评估
  5. 聚类和EM算法——K均值聚类
  6. 线程的状态、调度、同步
  7. LeetCode简单题之分割平衡字符串
  8. 操作系统学习笔记 第六章:设备管理(王道考研)
  9. 2021年大数据Spark(三十七):SparkStreaming实战案例二 UpdateStateByKey
  10. Java基础入门语法和安装