用java写一个递归程序打印斐波拉契 (Fibonacci) 数列,数列的长度可以由输入指定。 斐波拉契 (Fibonacci) 数列是的前两项分别是1和1,后续各项分别是前面两项的和。 1 1 2 3 5 8 13 21 34…………带详细注释
时间: 2023-12-03 15:03:54 浏览: 76
好的,下面是Java代码实现:
```java
import java.util.Scanner;
public class Fibonacci {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入斐波那契数列的长度:");
int length = sc.nextInt();
for (int i = 1; i <= length; i++) {
System.out.print(fibonacci(i) + " ");
}
}
/**
* 递归计算斐波那契数列的第n项
* @param n 第n项
* @return 第n项的值
*/
public static int fibonacci(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
}
```
程序首先通过 `Scanner` 类获取用户输入的斐波那契数列的长度,然后通过 for 循环遍历输出斐波那契数列的前 n 项。在每次循环中,调用 `fibonacci` 方法计算并输出当前项的值。
而 `fibonacci` 方法则使用递归的方式计算斐波那契数列的第 n 项。递归的终止条件是 n 为 1 或 2 时,此时斐波那契数列的第一项和第二项的值均为 1。对于 n 大于 2 的情况,递归计算第 n-1 项和第 n-2 项的值,并将两者相加即为第 n 项的值。
阅读全文