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   常规的思路是不断地根据前面的数据产生后面的数据,排列成一排。但是在计算机中,这里巧妙了只运用了四个变量,通过计算并赋值的方式不断地得出结果。

 


__EOF__

本文作者Jukim
本文链接https://www.cnblogs.com/Jukim/p/16047879.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Jukim  阅读(572)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示