`
qq_24665727
  • 浏览: 121254 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

剑指offer-青蛙上台阶问题

阅读更多

 牛客剑指offer- 青蛙上台阶问题:

         问题描述:一只青蛙一次可以上1步或者2步台阶,求该青蛙跳上n级台阶总共有多少种跳法?

         

         问题解析:

                第一步有两种跳法:a>假设第一次跳的是1阶,那么剩下的是n-1个台阶,跳法是f(n-1);

                                                b>假设第一次跳的是2阶,那么剩下的是n-2个台阶,跳法是f(n-2);

                那么由a,b可知  总跳法 f(n)=f(n-1)+f(n-2);  

                又因为n=1时,f(1)=1;   n=2时,f(2)=2;   可以得出:

                       | 1,(n=1)

                f(n)=| 2,(n=2)

                       |  f(n-1)+f(n-2)  (n>2,n为整数)

                可以发现这是一个斐波那契数列;

 

代码如下:

import java.util.Scanner;

/**
 * 剑指offer-
 * 青蛙上台阶问题:
 * 一只青蛙一次可以上1步或者2步台阶,求该青蛙跳上n级台阶总共有多少种跳法
 * @author Jiacheng
 *
 */
public class Frogwstj {
	public static void main(String[] args) {
		Frogwstj frog=new Frogwstj();
		Scanner scanner=new Scanner(System.in);
		while(true){
			int count=frog.upperStage(scanner.nextInt());
			System.out.println("总共有:"+count+" 种方法");
		}
	}
/**
 * 递归计算
 * @param n 台阶数量
 * @return 总共上台阶的方法
 */
	private int upperStage(int n) {
		if(n==1){
			return 1;
		}
		if(n==2){
			return 2;
		}
		int sum=upperStage(n-1)+upperStage(n-2);
		return sum;
		
	}
}

 

0
2
分享到:
评论

相关推荐

    c++-剑指offer题解之青蛙跳台阶

    c++ c++_剑指offer题解之青蛙跳台阶

    stronglxp#learnNote#剑指Offer10-II.青蛙跳台阶问题1

    定义dp[i]表示跳上一个i级台阶的跳法数,则dp[0] = dp[1] = 1,对于任意i(i >=2),跳上i级台阶可以通过跳1级或者跳2级到达,所以dp

    《剑指Offer》题目及代码.zip

    《剑指Offer》 1. 赋值运算函数 2. 单例设计模式 3. 二维数组中查找目标值 4. 替换字符串中的空格 5. 从尾到头打印链表 6. 由前序和中序遍历重建二叉树 7. 用两个栈实现队列 8. 求旋转数组的最小数字 9. ...

    《剑指Offer》题目及代码(修订版2).pdf

    在《剑指Offer》中,不仅有详细的题目描述和解题思路,还提供了一定数量的Java代码实现,使得读者在理解解题思路的基础上,能够快速掌握对应的代码实现。书中对于一些常见面试题型进行了归类和总结,并对一些代码...

    《剑指Offer》题目及代码(修订版4).pdf

    《剑指Offer》是程序员面试时必备的一本书籍,其内容主要是针对常见的编程面试题目进行分析,并提供Java语言的实现。修订版4作为该系列的更新,不仅包含了题目和解题思路,还对部分代码进行了重新排版,以解决原书中...

    leetcode中文版-jianzhi-Offer-Leetcode:剑指Offer与Leetcode对应题目

    《剑指Offer》与Leetcode主站题目链接对应 update:中文版leetcode已发布剑指offer授权的刷题合集: 本帖记录剑指offer在leetcode主站的原题。 无 无 数组中重复的数字 -> (中文版) 二维数组中的查找 -> 替换空格 ...

    剑指offer算法题Python源码带详细思路注释(68道).zip

    翻转单词顺序列,反转链表,斐波那契数列,复杂链表的复制,构建乘积数组,和为s的连续整数序列,和为s的两个数字,滑动窗口的最大值,机器人的运动范围,剑指offer-python实现.docx,矩形覆盖,矩阵中的路径,连续子数组的最大...

    《剑指Offer》Java代码(高清带目录) (1).pdf

    《剑指Offer》是一本针对IT行业特别是程序员面试的图书,主要内容涵盖了面试中常见的算法和数据结构问题以及它们的解决方案。这本书的Java版本更是吸引了大量Java开发者的关注。下面详细解读书中提及的知识点: 1. ...

    前端大厂最新面试题-剑指offer.docx

    前端大厂最新面试题-剑指offer.docx 本资源总结了前端大厂面试中的一些常见题目,涵盖了数组、二叉树、链表、栈、队列、斐波那契数列等数据结构和算法题目。这些题目都是前端工程师面试中常见的问题,了解和掌握...

    【Python学习-递归-斐波那契数列】【剑指offer】之跳台阶

    标题中的“【Python学习-递归-斐波那契数列】【剑指offer】之跳台阶”是指通过Python编程语言来学习递归方法,并通过解决一个经典的递归问题——跳台阶,来阐述这一概念。递归是编程中一种重要的算法,它通过函数...

    javalruleetcode-leetcode_by_py:他妈的leetcode与python

    剑指offer 题号 题目 难度 解析 python java 剑指offer03 数组中重复的数字 简单 剑指offer04 二维数组中的查找 中等 剑指offer05 替换空格 简单 剑指offer06 从头到尾打印链表 简单 剑指offer07 重建二叉树 中等 剑...

    lyj2014211626#Prepare_For_AI_Job#剑指 Offer 46. 把数字翻译成字符串1

    剑指 Offer 46. 把数字翻译成字符串参考链接解法一:动态规划类似于青蛙跳台阶,但是有些许的改变,就是判断n-2的值是>=10 && <= 25int t

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

    这个问题是经典的动态规划问题,通常被称为“青蛙跳台阶”或者“斐波那契数列”的变种。我们来深入分析一下解题思路。 首先,题目描述了一只青蛙要跳上n级台阶,每次它可以跳1级或2级。我们要找出青蛙跳上n级台阶的...

    leetcode中国-LeetCode-Go:力码围棋

    青蛙跳台阶问题 Y Y Y 剑指 Offer 11. 旋转数组的最小数字 Y Y Y 剑指 Offer 14- I. 剪绳子 Y Y Y 剑指 Offer 15. 二进制中1的个数 Y Y Y 剑指 Offer 17. 打印从1到最大的n位数 Y Y Y 剑指 Offer 21. 调整数组顺序使...

    leetcode迷宫问题-LeetCode:LeetCode刷题之剑指offer系列

    LeetCode之剑指offer系列刷题 剑指offer系列题目列表(C++实现) 题目名称和题号 题目链接 题目博客 刷题次数 类型 面试题01.06:字符串压缩 +2 查找+双指针 面试题03:数组中重复的数字 +2 查找 面试题04:二维数组...

    leetcode青蛙台阶-Algorithm-Practice:记录算法学习实践的过程

    leetcode 青蛙台阶 Algorithm-Practice 记录算法学习实践的过程。 编程语言:主要使用C++. 剑指Offer 以Leetcode上的剑指Offer为准。 LeetCode 牛客 排序算法 二分 暴力求解法

    leetcode中文版-Jianzhi-offer_python:健智提供python解决方案

    剑指Offer的Python解答 剑指Offer的Python解答,不断更新。如果数学公式无法正确显示,可以clone到本地查看,或者尝试使用Chrome插件“MathJax Plugin for Github”。 什么是剑指Offer? 精选谷歌、微软等知名IT企业...

    剑指offer刷题(九)变态跳台阶

    在变态跳台阶问题中,一只青蛙可以从一级跳到n级,每次跳跃可以是1级、2级乃至n级。我们要求的是跳上n级台阶有多少种不同的跳法。 首先,我们可以使用递归的方式来解决这个问题。定义函数f(n)表示跳上n级台阶的方法...

    完整学习笔记:《剑指offer》Java版代码实现

    第九题 斐波那契数列的第n项(青蛙跳台阶) 测试9 第十题 二进制中1的个数 测试10 第十一题 数值的整数次方 测试11 第十二题 打印1到最大的n晚数 测试12 第十三题 O(1)时间删除链表节点 测试13 第十四题 使数据库中...

    剑指Offer(Python多种思路实现):斐波那契数列

    这个问题类似于斐波那契数列,但每次可以跳跃1到n级台阶。解法同样使用斐波那契的概念,因为青蛙跳跃的步数组合方式符合斐波那契序列的特性。对于n级台阶,总共有2^(n-1)种跳法。 ```python class Solution: def ...

Global site tag (gtag.js) - Google Analytics