题解 | #计算斐波那契数最小差值#
计算斐波那契数最小差值
https://www.nowcoder.com/practice/743de16bf29041b7b423609628a1fa8c
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int a = in.nextInt(); if (a == 0) { System.out.println(0); continue; } int n = Math.max(6, a); int[] feibo = new int[n]; feibo[0] = 0; feibo[1] = 1; int min = Math.min(Math.abs(a - feibo[1]), Math.abs(a - feibo[0])); for (int i = 2; i < n; i++) { feibo[i] = feibo[i - 1] + feibo[i - 2]; min = Math.min(min, Math.abs(a - feibo[i])); } System.out.println(min); } } }