1、Fibonacci 数列:
1.Fibonacc 数列:输出 Fibonacc 数列的前20项,每行输出4项,Fibonacc 数列的计算使用递归函数实现。
1.1 源码:
public class MyFibonacc {
static int n = 20;
public static void main(String[] args) {
System.out.print("斐波拉契数列前20项:");
for (int i = 0; i < n; i++) {
if (i % 4 == 0){
System.out.println();
}
System.out.printf("%20d",fibonacci(i));
}
}
public static long fibonacci(int num){
if ((num) == 0 || (num == 1)){
return num;
}else{
return fibonacci(num-1)+ fibonacci(num - 2);
}
}
}
1.2 运行结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210309145241762.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDcxNTczMw==,size_16,color_FFFFFF,t_70)
2、排列问题:
2,排列问题(使用递归的方式输出n的全排列),使用 递归函数输出 0~N-1的全排列。
2.1 源码:
import java.util.ArrayList;
import java.util.List;
public class MyRecursion {
static int max = 4;
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
for (int i = 1; i <= max; i++) {
list.add(i);
}
System.out.println("使用递归输出"+max+"个数的全排列,结果如下:");
Permutation(list,0,max-1);
}
private static void Permutation(List<Integer> list, int start, int end) {
if (start == end){
for (Integer i:list) {
System.out.print(i+" ");
}
System.out.println();
}else{
for (int i = start; i <= end; i++) {
swap(list, start, i);
Permutation(list, start+1, end);
swap(list, start, i);
}
}
}
private static void swap(List<Integer> list, int i, int j) {
Integer temp = list.get(i);
list.set(i, list.get(j));
list.set(j, temp);
}
}
2.2 运行结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210309152117123.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDcxNTczMw==,size_16,color_FFFFFF,t_70)