记一道很有意思的算法题---青蛙跳台阶问题

本文介绍了青蛙跳台阶问题,这是一道源于《剑指Offer》的算法题,涉及到斐波那契数列的变形。博主分析了问题并提供了递归求解的代码实现,同时提醒读者注意整数范围限制和栈溢出问题。
摘要由CSDN通过智能技术生成

题目背景简介

这是博主最近准备秋招时看的剑指offer上的一道题目,题目不是很难,但是我觉得比较有意思,所以发在了博客上面.

题目描述

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

如果哪位路过的朋友觉得这道题比较有意思的话可以暂时先不看下面的分析,自己先尝试一下写这道题.

一张用来挡视线的图

题目分析

在看到这个题目后,首先想到的应该是斐波那契数列的变形,那么思考这个问题应该从斐波那契数列的方向上着手.
当n=1时,f(n)=1,当n>2时,可以从以下角度进行考虑,青蛙最后一次上台阶可能是跳了1-n中任意一个数的台阶.
如果青蛙最后一步是跳了1个台阶的话,那么前面的n-1个台阶的跳法就有f(n-1)种,如下图:
最后一步跳一个台阶=f(n-1)

如果青蛙最后一步跳了2个台阶的话,那么前面的n-2个台阶的跳法就有f(n-2)种,如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值