Fibonacci数列最小步数

1.题目:


2.解析:

让a,b,c回滚构造斐波那契数列 :a=b, b=c, c=a+b;

输入的数 n小于c,在b,c之间,只要 n+1 或者 n-1(贪心思想: n只加一或者只减一

最后再求n-b,c-n的最小值,获得最小步数

代码:

java 复制代码
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int a = 0, b = 1,c = 1;
        int ret = 0;
        while(n > c){
            a=b;
            b=c;
            c=a+b;
            if(n > b && n < c) {
                ret = Math.min(n-b,c-n);
            }
        }

        System.out.print(ret);        
    }
}
相关推荐
_Narcissus_18 分钟前
枚举和模拟算法笔记
c语言·数据结构·c++·笔记·算法·模拟·枚举
天疆说24 分钟前
策略的进化:从随心所欲到稳健前行
算法
冻柠檬飞冰走茶33 分钟前
《数据结构实验指导-C++语言版》 在顺序表 list 中查找元素 x
开发语言·数据结构·c++·算法·list
happyprince2 小时前
03-深刻观-CodeX哲学与升华(源码)
算法·ai编程
不会打球的王子2 小时前
Day 27:迁移学习与微调 — 站在巨人的肩膀上
算法
数模竞赛Paid answer2 小时前
2025年中青杯数学建模A题康养城市建设求解全过程论文及程序
算法·数学建模·数据分析·中青杯
网安蟹佬霸2 小时前
密码学安全实战:从加密原理到哈希破解的完整攻防指南
网络·算法·安全·web安全·开源·密码学·哈希算法
yangmu32033 小时前
深度解析:短视频是如何通过“算法+神经机制”劫持用户时间的?
算法
LuminousCPP3 小时前
栈和队列专题(四):LeetCode 232. 用栈实现队列|双栈分工 + 按需迁移 + 摊还 O(1)
c语言·数据结构·笔记·算法·leetcode
tudousisi2223 小时前
01背包8.21
数据结构·算法