码迷,mamicode.com
首页 > 其他好文 > 详细

Fibonacci问题

时间:2016-08-06 21:48:04      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
            int N = in.nextInt();
            int fibN = getFib(N);
            System.out.println(fibN);
        }
    
    public static int getFib(int N) {
        if(N>=1 && N<=2) return 0;
        int fibOne = 1;
        int fibTwo = 0;
        int fibLeft = 0;
        int fibRight = 0;
        for(int i=0; ; i++) {
            fibRight = fibOne + fibTwo;
            if(fibRight >= N)
                break;
            fibLeft = fibOne + fibTwo;
            fibTwo = fibOne;
            fibOne = fibLeft;    
        }

        return Math.min(Math.abs(N-fibLeft),Math.abs(N-fibRight));
        
    }
}

 

Fibonacci问题

标签:

原文地址:http://www.cnblogs.com/zywu/p/5744843.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!