diff --git a/Hello.java b/Hello.java index b8a5adfe3b425ec20719b83515964f3908bf759d..c19662a716f3a307415a09065c03ea211307fcc4 100644 --- a/Hello.java +++ b/Hello.java @@ -15,4 +15,38 @@ public class Hello { return a+b; } + + /** + * 生成斐波那契数列 + * 从指定的起始数字开始,生成指定长度的斐波那契数列 + * + * @param start 斐波那契数列开始的首个数字 + * @param length 需要生成的斐波那契数列长度 + * @return 包含斐波那契数列的数组 + * @throws IllegalArgumentException 如果起始数字为负数或长度小于等于0 + */ + public static long[] generateFibonacciSequence(long start, int length) { + if (start < 0) { + throw new IllegalArgumentException("起始数字不能为负数"); + } + if (length <= 0) { + throw new IllegalArgumentException("长度必须大于0"); + } + + long[] fibonacci = new long[length]; + + if (length == 1) { + fibonacci[0] = start; + return fibonacci; + } + + fibonacci[0] = start; + fibonacci[1] = start; // 斐波那契数列的前两个数字相同 + + for (int i = 2; i < length; i++) { + fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2]; + } + + return fibonacci; + } } \ No newline at end of file