【剑指offer】一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
需求:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
分析:
此题的突破口在台阶数;台阶数不一样,结果就不一样;由台阶数来找规律。
台阶数 | 跳法 |
1 | 1 |
2 | 2 |
3 | 4 |
4 | 8 |
5 | 16 |
6 | 32 |
...... | ...... |
通过分析台阶数,可以看出当台阶数为n时,跳法数为前两个之和,设跳法数为函数f(n),则有:
f ( n ) = 2 * f( n - 1 );
这是一个一个斐波那切数列,所以转化为求解斐波那切数列问题
实现代码:
import java.util.Scanner;public class Solution {public static int f(int n) {if(n<2){return n;}else{return 2*f(n-1);}}public static void main(String[] args) {System.out.println("请输入台阶数:");Scanner s=new Scanner(System.in);int n;n=s.nextInt();System.out.println("跳法数为:");System.out.println(f(n));}
}
分析:
首先,当位数为0时返回值为0;位数为1时返回1;因为他们是起始值;
然后,当位数为2时,其返回值 = 2 = 2*1;
当位数为3时,其返回值 = 4 = 2*2;
当位数为4时,其返回值 = 8 = 2*4;
当位数为5时,其返回值 =16=2*8;
......
所以由以上可得,大于等于3的情况下,当前位数的值
f (n) = 2 * f(n - 1)。
输出示例为:
欢迎大家留言讨论!
【剑指offer】一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。相关推荐
- 【python逻辑算法题】一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法
文章目录 一.题目描述 二.问题分析 三.代码分析与逻辑(python3实现) 四.源码及运行结果 总结 提示:以下是本篇文章正文内容: 一.题目描述 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2 ...
- [递归]一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
这题是用C写的~ 在牛客上半天找不着ACM模式,练习模式里只有核心代码模式 这样用C语言编译器就不能自定义函数啊,不鸡肋吗??? 解决方法:在核心代码模式下用C++编译器(反正C++完全兼容C的不是吗 ...
- 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级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 分析: 对于本题,前提只有 一次 1阶或者2阶的跳法. a.如果两种跳法, ...
- 牛客网刷题java之变态跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 其实和普通的只能跳一个和两个台阶的思路是一样的,都是为了求迭代表达式. ...
- 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
import java.util.Scanner;/* 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.请用递归和循环2中方法实现答案来源:https://w ...
- 一只青蛙一次可以跳上1级台阶也可以跳上2级求该青蛙跳上一个n级的台阶总共有多少种跳法?
一只青蛙一次可以跳上1级台阶也可以跳上2级求该青蛙跳上一个n级的台阶总共有多少种跳法? 解题思路 :每次跳1到n,那么如果是n阶台阶,一次就可能跳1~n阶(话说n=1000,青蛙腿肯定绑火箭了),乍一 ...
- (java)跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
文章目录 题目描述 思路 解法一:递归暴力破解 解法二: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路 解法一 ...
最新文章
- 高并发下的秒杀系统架构设计实战!
- 定义一维数组一定要指定个数吗_6.1 C语言一维数组
- 基于libzplay 实现window下音乐频谱动态显示
- 华为鸿蒙ai字幕,EMUI11一个值得吹爆的功能?AI字幕,支持翻译英日韩
- Maximum Balanced Circle
- 正式突破两千粉丝!开心!
- Java需要注意的一些小细节
- arm9重启ssh服务_部署ssh使用rsa登录配置
- Microsoft Visual Studio 2010 破解下载!
- Javascript中四种函数调用方式
- 关于服务限流的一些思考
- Linux之ssh-agent命令
- STC1_FULLSCREEN_TABLE_CONTROL
- xci转化nsp_Switch游戏XCI转NSP的教程+工具下载
- 时钟软件哪个好?9款苹果电脑时钟提醒软件推荐
- 散列(哈希)函数的python实现。
- 浅析AI边缘计算的车辆/车牌识别技术研发及场景应用
- Gson:GitHub 标星 18K 的 JSON 解析器,Google 出品的 Java JSON 解析器,强烈推荐!
- 通过fork来剖析Linux内核的内存管理和进程管理(下)
- 独家 | pyecharts V1.0.0 版本正式发布
热门文章
- Android Sendor框架介绍
- Win10 没有激活,如何改变任务栏位置
- linux连接校园网wifi,Linux/Ubuntu 16.04 使用校园网客户端Dr.com DrClient 有线连网,同时开启WiFi热点...
- 引入jq库,却不起效,底线解决方法
- Air Jordan 32 Performance Review
- 主内存和工作内存是什么?
- 到底还有没有月薪3万以下的程序员?程序员工资真的这么高!
- php教程7天速成,练字速成法一周写出一手漂亮的字!【7天练字速成】
- 经典的《Rework》
- 项目管理的九大知识领域