Fibonacci数列是这样定义的: F[0] = 0 F[1] = 1 for each i ≥ 2: F[i] = F[i-1] + F[i-2] 因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Fibonacci {
 
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int f1 = 0;
        int f2 = 1;
        int temp;
        while(f2 < n) {
            temp = f1;
            f1 = f2;
            f2 = f1 + temp;
        }
        System.out.println(Math.min(n-f1, f2-n));
    }
}

ps:想想如果输入的数字最大为多少?

猜你喜欢

转载自www.cnblogs.com/gui123/p/9851756.html