现有数列:f(n)=f(n-1)+f(n-2) (n>=2),其中:f(0)=0,f(1)=1,编写程序求解任意的F(n)的值,使用java
时间: 2024-10-24 10:06:42 浏览: 59
在Java中,要计算斐波那契数列(Fibonacci sequence),即`f(n) = f(n-1) + f(n-2)`,你可以使用动态规划的方法来避免重复计算。这里我们可以创建一个长度为n+1的数组存储中间结果,以便快速获取已计算过的值。
以下是Java代码示例:
```java
public class Fibonacci {
public static int fibonacci(int n) {
if (n <= 0) {
throw new IllegalArgumentException("n must be a positive integer");
}
// 创建一个长度为n+1的数组,初始化前两个元素
long[] fibArray = new long[n + 1];
fibArray[0] = 0;
fibArray[1] = 1;
// 使用动态规划填充数组
for (int i = 2; i <= n; i++) {
fibArray[i] = fibArray[i - 1] + fibArray[i - 2];
}
return (int) fibArray[n]; // 返回第n项的值
}
public static void main(String[] args) {
int n = 10; // 指定你想求解的项数
try {
int result = fibonacci(n);
System.out.println("The " + n + "th term of the Fibonacci series is: " + result);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
}
```
在这个程序中,`fibonacci`函数接收一个整数n作为参数,并返回斐波那契序列的第n项。注意,由于斐波那契数列的值会非常大,对于较大的n,可能会超出int类型的范围,所以这里使用了long类型。如果你想限制在int范围内,可以只计算到47(因为46之后的值会超过Integer.MAX_VALUE)。
阅读全文