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);        
    }
}
相关推荐
佳xuan12 小时前
简而言之c++
c++·算法
变量未定义~13 小时前
星际争霸、宝石塔的亮度差异、寻找食物储量
算法
YL2004042613 小时前
027合并两个有序链表
java·数据结构·算法·链表
MATLAB代码顾问13 小时前
【智能优化】无穷优化算法(INFO)原理与Python实现
开发语言·python·算法
炽烈小老头13 小时前
【每天学习一点算法 2026/05/10】合并K个排序链表
学习·算法·链表
SilentSamsara13 小时前
迭代器协议:`__iter__` / `__next__` 的完整执行流程
开发语言·人工智能·python·算法·机器学习
AI科技星13 小时前
算法联盟ROOT · 全域数学物理卷第20、21、22分册:量子纠缠、隐形场论与时间膨胀
人工智能·算法·数学建模·数据挖掘·机器人
MATLAB代码顾问14 小时前
【智能优化】鹈鹕优化算法(POA)原理与Python实现
开发语言·python·算法
AI科技星14 小时前
微积分:变化与累积的数学(分层大白话解释版)
人工智能·算法·数学建模·数据挖掘·机器人
sinat_2869451914 小时前
llm wiki
人工智能·算法·chatgpt