题解 | #Fibonacci数列#

Fibonacci数列

https://www.nowcoder.com/practice/18ecd0ecf5ef4fe9ba3f17f8d00d2d66

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);       
        while (in.hasNextInt()) { 
            int n = in.nextInt();
            int left = 0;
            int right = 1;
            int ret = 0;
            while (n >= right) {
                //找到n的左右的Fibonacci数,
                ret = right + left;
                left = right;
                right = ret;
            }
            //最小步数就是n到左边和到右边的最小值。
            int step = Math.min((right - n), (n - left));
            System.out.println(step);
        }
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-26 15:46
已编辑
字节国际 电商后端 24k-35k
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务