求斐波那契数列的第n项。(迭代实现)java
时间: 2024-05-15 18:16:02 浏览: 95
```java
public static int fibonacci(int n) {
if (n <= 0) {
return 0;
}
if (n == 1) {
return 1;
}
int pre1 = 0, pre2 = 1;
int fib = 0;
for (int i = 2; i <= n; i++) {
fib = pre1 + pre2;
pre1 = pre2;
pre2 = fib;
}
return fib;
}
```
相关问题
用JAVA编写程序,求斐波那契数列前n项
斐波那契数列是一个非常经典的数列,其中每个数字都是前两个数字之和,通常从0和1开始。在Java中,你可以使用循环或递归来计算前n项斐波那契数。这里我会提供两种常见的方法:
**1. 使用循环(迭代)计算:**
```java
public class Fibonacci {
public static void main(String[] args) {
int n = 10; // 指定要计算的项数
for (int i = 0; i < n; i++) {
System.out.print(fibonacci(i) + " "); // 前i项斐波那契数
}
}
// 递归方法计算斐波那契数
private static int fibonacci(int n) {
if (n <= 1)
return n;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
```
**2. 使用动态规划(优化递归)计算:**
```java
public class Fibonacci {
public static void main(String[] args) {
int n = 10; // 指定要计算的项数
for (int i = 0; i < n; i++) {
System.out.print(fibonacci(i) + " "); // 前i项斐波那契数
}
}
// 动态规划方法存储已经计算过的值避免重复计算
private static int[] fibArray = new int[n];
private static int fibonacci(int n) {
if (n <= 1)
return n;
if (fibArray[n] == 0) {
fibArray[n] = fibonacci(n - 1) + fibonacci(n - 2);
}
return fibArray[n];
}
}
```
java求斐波那契数列的第n项fn
这里提供两种Java求斐波那契数列的第n项fn的方法:
1. 递归法:根据斐波那契数列的定义,可以使用递归的方式求解。代码如下:
public static int fib(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fib(n - 1) + fib(n - 2);
}
}
2. 迭代法:使用循环迭代的方式求解,代码如下:
public static int fib(int n) {
int a = 1, b = 1;
for (int i = 3; i <= n; i++) {
int c = a + b;
a = b;
b = c;
}
return b;
}
其中,第一种方法使用递归,代码简单易懂,但是当n较大时,会出现栈溢出的问题。第二种方法使用循环迭代,效率更高,但是代码稍微有些复杂。根据实际情况选择合适的方法即可。
阅读全文