第一种就是,当青蛙选择一开始先跳一步时,那么两个台阶就只剩下一个台阶要跳了,那还能怎么办,继续跳就完事了。 第二种就是,青蛙选择一次跳两步,两个台阶就被跳完了。 当存在三个台阶时,青蛙此时就会有三种方法。 第一种:一步一步地跳。 第二种:先选择跳一步之后 ,再一次跳两步。 第三种:先选择跳两...
即跳三个台阶跳法=跳一个台阶跳法+跳两个台阶跳法。 所以当有n个台阶时,假如青蛙第一次跳了1个台阶,那么剩下了n-1个台阶;假如青蛙第一次跳了2个台阶,那么剩下了n-2个台阶 那我们是不是可以这么想跳n个台阶的跳法=跳n-1个台阶跳法+跳n-2个台阶跳法 近似斐波那契数 综上,我们可以把这种问题看成斐...
首先,当N=1时,那么青蛙就有一种跳法。 当N=2时,青蛙可以跳两次一层台阶也可以跳一次二层台阶,有两种跳法 当N=3时,当青蛙首先跳一次一层台阶时,那么还需要跳两层台阶,那它此时就是N=2时的跳法,即有两种跳法。 当青蛙跳一次二层台阶时,此时只需要再跳一层台阶,那么它此时就是N=1时的跳法,即有一种...
所以n 级台阶的跳法总数应该是二种跳法之和(第一步可能跳一阶,也可能跳二阶):f(n-1) + f(n-2) 。 我们可以发现青蛙跳台阶的规律和斐波那契数列非常相似,仅仅是开始的值不一样而已。 代码实现 递归写法 #include<stdio.h>int Frog(int n){if (n < 3){return n; //当n小于3时,直接返回n即可}e...
【青蛙跳台阶问题】c语言实现 1.问题描述 青蛙跳台阶问题是指:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 2.问题分析 假设跳上一个n-1级的台阶有x种跳法,跳上一个n-2级的台阶有y种跳法,那么跳上一个n级的台阶总共有x+y种跳法,因为可能性只有两种:...
一、问题呈现 1.问题描述 Problem Description 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。 提示:本题可联系斐波那契数列问题的解法加以理解。 附:斐波那契解法 2.输入输出 Input 输入青蛙要跳的级(台阶)数n ...
1,汉诺塔问题 2,青蛙跳台阶问题 1,定义 话不多说,我们先上定义: 一种计算过程,如果其中每一步都要用到前一步或前几步的结果,称为递归的。用递归过程定义的函数,称为递归函数,例如连加、连乘及阶乘等。凡是递归的函数,都是可计算的,即能行的 [1] ...
另一个经典的递归问题就是青蛙跳台阶问题。一只青蛙一次可以跳两个台阶,如果有n个台阶,有多少种跳法?这个问题可以通过递归函数来解决。基本思路是每次可以选择跳两个台阶或者不跳,然后剩下的台阶再按照同样的方式处理。这样,问题就变成了如何在n-1个台阶上跳到目标柱C。
青蛙跳上第一个台阶只有一种跳法:1 跳上第二个台阶有两种跳法:1+1,2 缕清逻辑后,接下来开始写代码 #include<stdio.h> //青蛙跳台阶问题 int Forg(int n) { if(n<=2) return n; else return Forg(n-1)+Forg(n-2); } 在第一种方法中,是通过递归解决问题,但是这样会造成大量重复的运算,效率很...
问题如下:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 我们用x记作跳法的个数,用数字1 2表示跳1级和跳2级台阶 当n比较小时,情况比较简单,我们直接分析,来看看有没有什么规律 当n=1时,有 1, 一种跳法 x=1 ...