java斐波那契数列求第n项编程
时间: 2024-10-12 18:10:27 浏览: 22
在Java中,我们可以使用递归或循环的方式来编写求解斐波那契数列的程序。这里给出递归和循环两种常见的方法:
1. **递归实现**:
```java
public static long fibonacci(int n) {
if (n <= 0) return 0;
else if (n == 1 || n == 2) return 1;
else return fibonacci(n - 1) + fibonacci(n - 2);
}
```
递归虽然简洁,但对于较大的n值效率较低,因为会有很多重复计算。
2. **循环实现**:
```java
public static long fibonacci(int n) {
if (n <= 0) return 0;
long fib = 1, prevFib = 1;
for (int i = 3; i <= n; i++) {
long temp = fib;
fib += prevFib;
prevFib = temp;
}
return fib;
}
```
循环版本更高效,因为它避免了递归带来的重复计算。
相关问题
java编程打印斐波那契数列的前n项,每行打印m项。
在Java中,打印斐波那契数列的前n项,每行打印m项,可以使用嵌套循环以及数组来实现。斐波那契数列的特点是每个数字是前两个数字之和。下面是一个简单的示例:
```java
public class Fibonacci {
public static void printFibonacci(int n, int m) {
// 初始化斐波那契序列的前两项
int[] fibSeries = new int[n];
fibSeries[0] = 0;
if (m > 1) {
fibSeries[1] = 1;
}
// 打印前n项,每行m项
for (int i = 2; i < n; i++) {
fibSeries[i] = fibSeries[i - 1] + fibSeries[i - 2]; // 计算新的斐波那契数
// 每打印m个数换行
if ((i + 1) % m == 0 || i == n - 1) {
for (int j = 0; j <= i; j++) {
System.out.print(fibSeries[j] + " ");
}
System.out.println(); // 新行开始
} else {
System.out.print(fibSeries[i] + " ");
}
}
}
public static void main(String[] args) {
int n = 10; // 要打印的项数
int m = 5; // 每行显示的项数
printFibonacci(n, m);
}
}
```
在这个例子中,`printFibonacci`方法接受两个参数,n表示总的项数,m表示每行打印的数量。运行这个程序会输出斐波那契数列的前n项,每行显示m个数字。
java编程,利用数组求斐波那契数列前10项
可以使用一个长度为10的数组来存储斐波那契数列前10项,然后通过循环计算每一项的值并存储到数组中。以下是Java代码实现:
```java
public class Fibonacci {
public static void main(String[] args) {
int[] fib = new int[10];
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i < 10; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
for (int i = 0; i < 10; i++) {
System.out.print(fib[i] + " ");
}
}
}
```
输出结果为:0 1 1 2 3 5 8 13 21 34
阅读全文