一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法
跳一级有1种方法
跳两级有2种方法
跳三级有3种方法
眺四级有5种方法
眺5级有8种方法
……
数到后面发现类似于斐波拉且数列的规律
编写代码:
1.递归
import java.util.Scanner;
public class TestDemo{
public static int floor(int n){
if(n==1){
return 1;
}
if(n==2){
return 2;
}
int sum=floor(n-1)+floor(n-2);
return sum;
}
public static void main(String[] args) {
Scanner scan =new Scanner(System.in);
int n=scan.nextInt();
System.out.println(floor(n));
}
}
2.非递归
import java.util.Scanner;
public class TestDemo{
public static int fl(int n) {
int f1 = 1;
int f2 = 2;
int f3 = 0;
if (n == 1 || n == 2) {
return n;
}
for (int i = 3; i <= n; i++) {
f3 = f1 + f2;
f1 = f2;
f2 = f3;
}
return f3;
}
public static void main(String[] args) {
Scanner scan =new Scanner(System.in);
int n=scan.nextInt();
System.out.println(fl(n));
}
}