用递归算法求Fibonacci数列的前40个数,要求输出的时候每5个数换一行。用java
时间: 2024-10-20 19:04:14 浏览: 34
递归算法是一种通过函数自身调用来解决问题的方法。对于Fibonacci数列,它是一个典型的递归问题,其中每个数字(从第三项开始)都是前两项之和。以下是使用Java编写的一个递归函数,用于计算并打印Fibonacci数列的前40个数,每5个数换行:
```java
public class Fibonacci {
public static void main(String[] args) {
int n = 40;
for (int i = 0; i < n; i++) {
System.out.print(fib(i) + " ");
if ((i+1) % 5 == 0 || i == n - 1) { // 每5个数或最后一个数换行
System.out.println();
}
}
}
// 递归计算Fibonacci数列
private static long fib(int n) {
if (n <= 1) {
return n;
} else {
return fib(n - 1) + fib(n - 2);
}
}
}
```
在这个程序中,`fib()`函数负责递归地计算Fibonacci数值,而主函数`main()`则调用这个函数,并控制输出格式。
相关问题
用递归算法求Fibonacci数列的前40个数,要求输出的时候每5个数换一行。
递归算法可以用来计算Fibonacci数列,这是一种每个数字等于前两个数字之和的数列(如0, 1, 1, 2, 3, 5, 8, ...)。下面是用Python编写的一个递归函数,用于生成并打印前40个Fibonacci数列,每5个数换一行:
```python
def fibonacci(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
else:
fib_list = fibonacci(n - 1)
fib_list.append(fib_list[-1] + fib_list[-2])
return fib_list
# 输出每5个数换行的前40个Fibonacci数
fib_40 = fibonacci(40)
for i in range(0, len(fib_40), 5):
print(', '.join(map(str, fib_40[i:i+5])))
```
运行这个代码,你会看到前40个Fibonacci数列,每5个数一行。注意,由于递归效率较低,对于较大的n值,可能会有性能问题。
c语言用递归算法求Fibonacci数列的前40个数
好的,以下是用递归算法求Fibonacci数列的前40个数的C语言代码:
```c
#include <stdio.h>
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n-1) + fibonacci(n-2);
}
int main() {
int n = 40, i;
for (i = 0; i < n; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
```
在这个代码中,我们定义了一个递归函数 `fibonacci()`,它接收一个整数参数 `n`,并返回 Fibonacci 数列中第 `n` 项的值。当 `n` 小于等于 1 时,直接返回 `n`;否则,递归调用 `fibonacci()` 函数,并返回前两项之和。在 `main()` 函数中,我们调用 `fibonacci()` 函数来输出前40项 Fibonacci 数列的值。
阅读全文