3.顽猴爬台阶

 一天一只顽猴想要从山脚爬到山顶途中经过一个有n个台阶的阶梯,但是这个猴子有个习惯,每一次只跳1步或3步。  试问?猴子通过这个阶梯有多少种不同的跳跃方式

输入描述:输入只有一个这个数n    0<n<50  此阶梯有多个台阶


输出描述:有多少种跳跃方式

实例:
输入 50   输出 122106097

输入 3    输出2

 

查看代码
import java.util.*;

public class Demo3 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());

        int f1 = 1;
        int f2 = 1;
        int f3 = 2;

        int f4 = n == 3 ? 2 : 1;  //f4用来存储结果
        for(int i = 4; i <= n; i++){
            f4 = f1 + f3;
            f1 = f2;
            f2 = f3;
            f3 = f4;
        }

        System.out.println(f4);
    }
}

 

总结:这里处理的方式很巧妙,但是总感觉掌握不牢。

关键的关系式是 fn = fn-1 + fn-3   常规的思路是不断地根据前面的数据产生后面的数据,排列成一排。但是在计算机中,这里巧妙了只运用了四个变量,通过计算并赋值的方式不断地得出结果。

 

posted @ 2022-03-24 00:35  Jukim  阅读(536)  评论(0编辑  收藏  举报