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);        
    }
}
相关推荐
土司大王9 分钟前
LeetCode hot100——全排列
java·算法·leetcode
尾善爱看海13 分钟前
前端面试算法手撕全解(高频真题+标准答案)
算法·js
203号居民31 分钟前
LeetCode hot 100 — 138. 随机链表的复制
算法·leetcode·链表
凌晨16841 分钟前
OpenCV(十一)人脸识别三大算法LBPH、EigenFace、FisherFace
人工智能·opencv·算法
明月_清风43 分钟前
分治、贪心、回溯、动态规划:四种经典算法思想
后端·算法
Thomas21431 小时前
spark sort shuffer 和 hash shuffer 图解对比
算法·哈希算法
AbandonForce1 小时前
简谈线程池
开发语言·c++·算法
智购科技智能售货柜2 小时前
2026自动售货机商品掉落声学计数方案:从麦克风到频谱识别的工程实践~YH
人工智能·算法
土司大王2 小时前
LeetCode hot100——实现 Trie (前缀树)
java·算法·leetcode
水龙吟啸2 小时前
华为研发岗AI方向9.9机考题复盘&分析
人工智能·python·算法·华为