相关文章:
-
常规方法
private static int[] getFibonacci1(int n) { int[] fibonacci = new int[n]; if (n < 1) { return null; } if (n == 1) { fibonacci[0] = 1; return fibonacci; } if (n == 2) { fibonacci[0] = fibonacci[1] = 1; return fibonacci; } fibonacci[0] = fibonacci[1] = 1; for (int i = 2; i < n; i++) { fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2]; } return fibonacci; } public static void main(String[] args) { System.out.println(Arrays.toString(getFibonacci1(10))); } // [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
-
lambda方法
private static List<Integer> getFibonacci2(int n) { if (n < 1) { return null; } return Stream.iterate(new int[]{1, 1}, fibonacci -> new int[]{fibonacci[1], fibonacci[0] + fibonacci[1]}) .limit(n).map(fibonacci -> fibonacci[0]).collect(toList()); } public static void main(String[] args) { System.out.println(getFibonacci2(10)); } // [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]