一只青蛙前面有n个台阶,青蛙可以一次跳1或者2阶,求青蛙跳完台阶有多少种跳法。
import java.util.Scanner;
public class 跳台阶 { int JumpFloor(int n){ if(n == 1) return 1;//还剩一阶直接跳 else if( n== 2) return 2;//一次跳两阶或者一阶一阶跳两种情况 else return JumpFloor(n - 1) + JumpFloor(n - 2);//这次的情况,拆分成一次跳一阶和跳两阶 } public static void main(String[] args) { 跳台阶 a = new 跳台阶(); System.out.println(“请输入你的青蛙想要跳的阶数”); int jie = new Scanner(System.in).nextInt(); System.out.println(“青蛙的跳跃总共有” + a.JumpFloor(jie) + “种情况” ); } }
结果展示大概就是这样 2: 我们可以用21的小举行横着或者数着去覆盖更大的矩形。请问用n个21的小举行无重叠 的覆盖一个2n的大矩形,请问总共多少种覆盖方法。 懒癌晚期的我决定上图片!!!!! 前者,target就是说的当前给与的n的大小。 做题前先来个小分析: 首先来看target == 1的 很明显,答案只有一个,返回1. target == 2,好像有2种情况 返回2吧 但是再观察一下,能够延伸的就只有左右了,上下不行。由此可见,排列的形式就如上的,由此可以这么组合,每次抽出21或者2*2大小的格子,任意组合作为一种情况。但是每次竖着的也仅仅相当与两次横着的,于是每次试着分离出1个或者2个格子这种情况。 为什么右边没有分两种情况呢? 比如说: 类似这样? 重复了啊 方法必须不能重复的。 我自身水平有限,如有不好的地方还是需要改正的。 . . . . . .
差点忘记补上了 所以出现了这个东西。
跳台阶有个拓展题目,方法类似。嗯…… 跳台阶有个类似的东西,思考了下,大概就这样吧 另一个神奇的跳台阶:青蛙改成一次跳1~n级的。 (懒癌继续)因为之前没想太多,只是截了个图,所以就不写代码出来了。 各种情况一加,想下就好了,只是有些微小的变化。
