第一种就是,当青蛙选择一开始先跳一步时,那么两个台阶就只剩下一个台阶要跳了,那还能怎么办,继续跳就完事了。 第二种就是,青蛙选择一次跳两步,两个台阶就被跳完了。 当存在三个台阶时,青蛙此时就会有三种方法。 第一种:一步一步地跳。 第二种:先选择跳一步之后 ,再一次跳两步。 第三种:先选择跳两...
首先,当N=1时,那么青蛙就有一种跳法。 当N=2时,青蛙可以跳两次一层台阶也可以跳一次二层台阶,有两种跳法 当N=3时,当青蛙首先跳一次一层台阶时,那么还需要跳两层台阶,那它此时就是N=2时的跳法,即有两种跳法。 当青蛙跳一次二层台阶时,此时只需要再跳一层台阶,那么它此时就是N=1时的跳法,即有一种...
1.当台阶只有1级时 此时青蛙只有一种跳法,那就是跳1级 2.当台阶有2级时 不难看出,青蛙有两种跳法,一是跳1级再跳1级,二是一下跳2级。 3.当台阶有n级时 当台阶有n级时,题目好像一下子就复杂起来了,青蛙该怎么跳啊,其实不然,我们换个方向思考。 假如青蛙已经跳到了最上面,也就是第n级台阶,那青蛙...
青蛙跳台阶问题是指:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 2.问题分析 假设跳上一个n-1级的台阶有x种跳法,跳上一个n-2级的台阶有y种跳法,那么跳上一个n级的台阶总共有x+y种跳法,因为可能性只有两种: 先完成跳到第n-1级台阶这件事,再跳上1...
问题 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级,那么请问青蛙跳n个台阶的时候可以有多少种方式? 代码语言:javascript 复制 intFunc2(int x){int j=0;int sum2=0;int n2=0;n2=x;if(x>2){for(j=0;j<n2-1;j++){sum2+=Func2(x-1);x--;}returnsum2;}else{return1;}...
一、问题呈现 1.问题描述 Problem Description 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。 提示:本题可联系斐波那契数列问题的解法加以理解。 附:斐波那契解法 2.输入输出 Input 输入青蛙要跳的级(台阶)数n ...
青蛙跳上第一个台阶只有一种跳法: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 ...
另一个经典的递归问题就是青蛙跳台阶问题。一只青蛙一次可以跳两个台阶,如果有n个台阶,有多少种跳法?这个问题可以通过递归函数来解决。基本思路是每次可以选择跳两个台阶或者不跳,然后剩下的台阶再按照同样的方式处理。这样,问题就变成了如何在n-1个台阶上跳到目标柱C。
若把条件修改成一次可以跳一级,也可以跳2级…也可以跳上n级呢? 解题思路 尽管条件改成每次跳的台阶级数不受限,但是换汤不换药,思考的方法是一样的。 1.当n=1或n=2时,青蛙跳台阶跳法次数和没修改条件时是一样的,n=1有一种跳法,n=2有两种跳法。