package com.test.test02;
import java.util.Arrays;
import java.util.List;
/**
* @author cruder*
* @date 2022/3/1 21:56
*/
public class Test003 {
public static void main(String[] args) {
List<String> list = Arrays.asList("hello","world","sdfs");
test001(list,list.size());
}
/**
* 递归输出字符串数组
* @param stringList
* @param n
* @return
*/
static int test001(List<String> stringList,int n){
if(n==0){
return n;
}else {
System.out.println(stringList.get(n-1));
return test001(stringList,n-1);
}
}
/**1,1,2,3,5,8,13,21,34,55,
* 这个数列从第3项开始,每一项都等于前两项之和。
* @param n
* @return
*/
static int fibonacci1 (int n){
if(n==2 | n==1){
return 1;
}
return fibonacci1(n-2)+fibonacci1(n-1);
}
/**
* for循环实现斐波那契
* @param n
* @return
*/
static int fibonacci2(int n){
int[] tmp = new int[n];
for (int i = 1; i <=n ; i++) {
if(i==1 | i==2){
tmp[i-1]=1;
}else {
tmp[i-1] = tmp[i-2] + tmp[i-3];
}
}
return tmp[n-1];
}
/**
* 递归实现阶乘
* @param n
* @return
*/
static int factoria1(int n){
if(n==1){
return n;
}
return n*factoria1(n-1);
}
/**
* for循环实现阶乘
* @param n
* @return
*/
static int factorial2(int n){
System.out.println("for循环计算过程");
int result = 1;
for (int i =1; i <=n ; i++) {
System.out.println(i+"*"+result+" "+result);
result = result*i;
}
return result;
}
}
java有关递归的算法
最新推荐文章于 2025-12-11 22:39:47 发布
这篇博客探讨了如何使用递归和循环两种方式来实现斐波那契数列和阶乘的计算。通过示例代码,作者详细展示了递归函数`test001`、`fibonacci1`和`factoria1`以及循环实现的`fibonacci2`和`factorial2`。这些函数分别用于输出字符串数组、计算斐波那契数列和阶乘值。
3232

被折叠的 条评论
为什么被折叠?



