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);        
    }
}
相关推荐
siy23331 小时前
[c语言日寄]c语言也有“回”字的多种写法——整数交换的三种方式
c语言·开发语言·笔记·学习·算法
van叶~1 小时前
算法妙妙屋-------2..回溯的奇妙律动
c++·算法
闲人编程3 小时前
PID控制器 (Proportional-Integral-Derivative Controller) 算法详解及案例分析
python·算法·pid·路径规划·微分控制·积分控制·比例控制
诚丞成3 小时前
字符串算法篇——字里乾坤,算法织梦,解构字符串的艺术(下)
c++·算法
自信的小螺丝钉5 小时前
Leetcode 279. 完全平方数 动态规划 完全背包问题
算法·leetcode·动态规划
努力的泽泽5 小时前
【动态规划-矩阵】5.下降路径最小和
算法·矩阵·动态规划
埃菲尔铁塔_CV算法8 小时前
双线性插值算法:原理、实现、优化及在图像处理和多领域中的广泛应用与发展趋势(二)
c++·人工智能·算法·机器学习·计算机视觉
叫我龙翔8 小时前
【算法日记】从零开始认识动态规划(一)
c++·算法·动态规划·代理模式
AC100AC8 小时前
[NOIP2007 提高组] 矩阵取数游戏
算法·游戏·矩阵
深度混淆9 小时前
C#,图论与图算法,输出无向图“欧拉路径”的弗勒里(Fleury Algorithm)算法和源程序
算法·图论