首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

台阶问题

题目: 给定一个有N个台阶的楼梯,一个人从下到上开始跳台阶,这个人有两种跳的方式:一次跳一个台阶,一次跳两个台阶; 问:从台阶底端跳到台阶顶端,有多少种跳台阶的方式?...如果只有1个台阶,那么显然只有一种跳法;如果 是2级台阶,那么有2种跳法。...对于一个有n级台阶的楼梯来说,我们设跳法为 f(n) ,假如我们先跳1个台阶,则剩下有 n-1 个台阶,跳法为 f(n-1) 次,假如我们先跳2个台阶,则剩下 n-2 阶,跳法为 f(n-2);由此可以推出...,对于一个n阶的楼梯,有以下这个跳台阶的公式: ?...解题代码如下: [cpp] view plaincopy /** 题目描述: 有N个台阶,一个人从台阶下向上跳台阶,有两种跳的选择 1次跳一个台阶,1次跳两个台阶 这两种选择;

59690

Python的7个台阶,你怎么

问题是这样的: 假如这里有 n 个台阶,你可以选择每次完成一个台阶 或者 两个台阶,试问走完这 n 个台阶有多少种法呢?...举个例子,如果有 7 个台阶,你可以选择 2 - 2 - 2 - 1 走完,也可以选择 2 - 1 - 1 - 1 - 2 走完。...首先,你跨出的每个第一步,都只有两种选择,要么跨出一个台阶,要么跨出两个台阶。而每个下一步又是一个全新的开始,又面临着两种选择。你看,有点递归的味道了吧?每个过程都是重复的过程。...让我们尝试着对这个函数进行深度思考,就会发现这个函数会有一些问题。 第一个问题 这个递归写得虽然简洁,但是却有大量的重复计算。...为了避免这个问题,通常我们会将这个递归实现转换成循环迭代。

69730
您找到你想要的搜索结果了吗?
是的
没有找到

青蛙跳台阶问题

2.若青蛙先跳两级台阶,接下来只能在再跳一级台阶 所以当有三级台阶时,一共有3种跳法 那么,一共有4级台阶时,一共有多少种跳法呢?...我们不妨列举一下 1.青蛙先跳一级台阶,接下来他就会还有3级台阶要去跳,而这3级台阶不就是上面3级台阶的重复吗!...所以此时一共有3种跳法 2.青蛙先跳2级台阶,接下来他还有2级台阶要跳,此处也可以使用之前得出的2级台阶的结果,所以此时一共有2种跳法 所以当青蛙要跳4级台阶时,其实就是跳3级台阶的跳法加上跳2级台阶的跳法...可能会稍微复杂一点 所以当有3级台阶时,一共有3种方法(其实就是有1级台阶和有两级台阶的跳法之和) 当有4级台阶时,其实也就是3级台阶和2级台阶的跳法之和 所以,要求有n级台阶时的跳法,其实就是n-1...return 2; }else { return jumpFloor(target-1)+jumpFloor(target-2); } } } 青蛙跳台阶是一个十分经典的问题

27830

【C语言】C语言⻘蛙跳台阶问题--递归问题

一、青蛙跳台阶问题 青蛙跳台阶问题是一个经典的递归问题,可以使用递归方法来解决。 问题描述:有n级台阶,青蛙每次可以跳1级台阶或者2级台阶,问青蛙跳上n级台阶有多少种不同的跳法。...当n=2时,有两种跳法:跳一次2级台阶或者跳两次1级台阶。 当n>2时,青蛙的第一次跳有两种选择:跳一级台阶或者跳两级台阶。...如果青蛙第一次跳一级台阶,那么跳上剩下的n-1级台阶的跳法数目为f(n-1)。 如果青蛙第一次跳两级台阶,那么跳上剩下的n-2级台阶的跳法数目为f(n-2)。...所以,跳上n级台阶的总跳法数目为f(n) = f(n-1) + f(n-2)。...:"); scanf("%d", &n); int result = jump(n); printf("跳上%d级台阶的跳法数目为:%d\n", n, result);

10210

C语言经典递归题目 -- 青蛙跳台阶问题

目录 题目描述 画图分析 思路分析 代码实现 ---- 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。...---- 画图分析 和上篇文章讲到的汉诺塔问题一样,我们还是由简到繁,从最简单的情况开始考虑: 只有一级台阶的情况: 只有一级台阶的时候,显然只有一种跳法。...有两级台阶的情况 有两级台阶的时候,青蛙有两种跳法。 跳一阶,在跳一阶: 直接跳两阶: 有三级台阶的情况: 有三级台阶的时候,青蛙有三种跳法。...跳一阶,再跳一阶,再跳一阶: 跳一阶,再跳两阶: 跳两阶,再跳一阶: ---- 思路分析 经过上面的分析,我们知道了一级、二级和三级台阶的跳法,现在要我们求 n 级台阶的跳法...,就剩下 n-1 级台阶,即剩下的跳法是 f(n-1) 种。

42500

青蛙跳台阶问题的三种解法

题目:一只青蛙一次可以跳 1 级台阶,也可以跳 2 级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 这道题还被 ITEye 放在了博文视点杯有奖答题活动里面。 我提供三种解法。...1、递归求解: 青蛙每跳一次前,有这样三种情况: (1)只剩 1 级或 0 级台阶了,只能跳一步或者无法再跳了,那么这条路也走到了终点,法的种类数可以加 1; (2)可以 2 级台阶; (3)可以...1 级台阶。...    total = recursiveCalc(n - 1, total);      return recursiveCalc(n - 2, total);  } 2、概率论思路求解: 首先把问题抽象成简单的数学模型...这时,问题即转化为: z 步骤中,有 x 个两步,y 个一步,相当于 z 个空当,由 x、y 去填充,那么不同填充方法的数目符合概率公式: C(x,z) = z! / ((z-x)!x!)

78610
领券