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);        
    }
}
相关推荐
CoovallyAIHub1 分钟前
BMW GenAI4Q:每57秒下线一辆车,AI如何为每辆车定制专属质检清单
数据库·算法·架构
不想看见4044 分钟前
Rotate Image数组--力扣101算法题解笔记
数据结构·算法
仰泳的熊猫11 分钟前
题目 2304: 蓝桥杯2019年第十届省赛真题-特别数的和
数据结构·c++·算法·蓝桥杯
靠沿19 分钟前
【优选算法】专题十五——BFS解决FloodFill算法
算法·宽度优先
2401_8496448525 分钟前
C++代码重构实战
开发语言·c++·算法
fengfuyao98525 分钟前
一个改进的MATLAB CVA(Change Vector Analysis)变化检测程序
前端·算法·matlab
2301_8154829335 分钟前
C++与WebAssembly集成
开发语言·c++·算法
像污秽一样1 小时前
算法设计与分析-习题4.3
数据结构·算法·排序算法
ComputerInBook1 小时前
几何学基本概念——超平面(hyperplane)
算法·机器学习·平面·几何学
沈阳信息学奥赛培训1 小时前
C++ 指针* 和 指针的引用 *& (不是指针和引用,是指针的引用)
数据结构·c++·算法