做网站哪种字体好看,营销策划公司是干什么的,网页开发制作教程,wordpress文章倒计时一、问题描述#xff1a;一只青蛙一次可以跳上1级台阶#xff0c;也可以跳上2级。求该青蛙跳上一个n级的台阶总共需要多少种跳法。 思路#xff1a;首先考虑n等于0、1、2时的特殊情况#xff0c;f(0) 0 f(1) 1 f(2) 2 其次#xff0c;当n3时#xff0c;青蛙的第一跳…一、问题描述一只青蛙一次可以跳上1级台阶也可以跳上2级。求该青蛙跳上一个n级的台阶总共需要多少种跳法。 思路首先考虑n等于0、1、2时的特殊情况f(0) 0 f(1) 1 f(2) 2 其次当n3时青蛙的第一跳有两种情况跳1级台阶或者跳两级台阶假如跳一级那么 剩下的两级台阶就是f(2)假如跳两级那么剩下的一级台阶就是f(1)因此f(3)f(2)f(1) 当n 4时f(4) f(3) f(2),以此类推...........可以联想到Fibonacci数列。 因此可以考虑用递归实现。但是递归算法效率低下也可考虑迭代实现。 1、递归算法 public static long Faci(long n){if (n0){return 0;}if (n1){return 1;}if (n2){return 2;}else{return Faci(n - 1) Faci(n - 2);}} View Code 2、迭代算法 public static long JumpFloor(long n){long former1 1;long former2 2;long target 0;if (n0){return 0;}if (n1){return 1;}if (n2){return 2;}else{for (int i 3; i n; i){target former1 former2;former1 former2;former2 target;}return target;}} View Code 3、分析结果 用递归算法是当n大于40时非常的满。用迭代算法的话基本上是立刻得到答案。 二、问题描述一只青蛙一次可以跳上1级台阶也可以跳上2级也可以跳三级。求该青蛙跳上一个n级的台阶总共需要多少种跳法。 1、迭代算法 / public static long JumpFloor(long n){long number1 1;long number2 2;long number3 4;long target 0;if (n0){return 0;}if (n1){return 1;}if (n2){return 2;}if (n3){return 4;}else{for (int i 4; i n; i){target number1 number2 number3;number1 number2;number2 number3;number3 target; }return target;}} View Code 转载于:https://www.cnblogs.com/minrh/p/8496549.html