用Java写 1. 用递归算法求Fibonacci数列的前40个数,要求输出的时候每5个数换一行。 F(0)=0,F(1)=1, F(n)= F(n - 1)+F(n - 2)(n≥ 2) 2.用递归算法实现全排列问题。
时间: 2024-11-13 14:22:35 浏览: 23
好的,下面是两个问题的Java代码示例:
**1. 用递归计算Fibonacci数列并每5个数换行:**
```java
public class Fibonacci {
public static void main(String[] args) {
for (int i = 0; i <= 39; ) {
System.out.print(fibonacci(i++) + " ");
if ((i % 5) == 0) { // 每打印5个数后换行
System.out.println();
}
}
}
// 递归计算Fibonacci数列
private static int fibonacci(int n) {
if (n <= 1) return n;
else return fibonacci(n - 1) + fibonacci(n - 2);
}
}
```
**2. 用递归实现全排列问题(Permutations):**
```java
import java.util.ArrayList;
public class Permutations {
public static void main(String[] args) {
permute(new String[] {"a", "b", "c"}, new ArrayList<>());
}
// 递归生成字符串数组的所有全排列
public static void permute(String[] arr, ArrayList<String> result) {
if (arr.length == 0) {
result.add(String.join("", result));
} else {
for (int i = 0; i < arr.length; i++) {
// 将当前元素放在所有剩余位置上
String temp = arr[i];
arr[i] = arr[0]; // 移动到第一个位置
arr[0] = temp;
permute(arr, result); // 递归处理剩余部分
// 撤销操作,恢复原始顺序
arr[0] = temp;
}
}
}
}
```
阅读全文