普通青蛙跳台阶和斐波那契数基本一致,只有当n=2时与斐波那契数有所不同。
那么进阶版说的是青蛙一次跳几个台阶都行。
先确定终止条件,也就是n==1的时候。
再确定表达式。
方法一
既然普通跳台阶,当一次跳一阶和跳两阶,为 f(n-1)和 f(n-2)相加。
那终极版一次可以跳 n 至 1 ,这么多。就一直从n-1 加到 1 ,也就是 f(n)= f(n-1)+f(n-2).....+1
那 f(n-1)又可以变成 f(n-2)+....+1
也就是 f(n)= 2 f(n-1)
public class Frog {
public static int fac(int n) {
if(n==1) {
return 1;
}
else {
return 2*fac(n-1);
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int way = fac(a);
System.out.println(way);
}
}
方法二
和普通版一样,算出前几个看一下规律。个人认为这个比较好想出来
可得f(n) = 2^(n-1)
public class Frog {
public static double fac(int n) {
if(n==1) {
return 1;
}
else {
return Math.pow(2,n-1);
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
double way = fac(a);
System.out.println(way);
}
}