欢迎光临散文网 会员登陆 & 注册

java 递归recursion的使用

2022-07-14 17:00 作者:虚云幻仙  | 我要投稿

/**
* 测试递归recursion
*/

public class TestRecursion2 {
   public static int m = 0;
   public static int factorial(int n){
       //factorial阶乘
       m++;
       if (m<n){
           return m*factorial(n);
       }else{
           m = 0;
           return n;
       }
   }

   public static void main(String[] args) {
       System.out.println(factorial(10));
       System.out.println(10*9*8*7*6*5*4*3*2);

   }
}

class TestRecursion3{
   //计算斐波那契数列 [1,2,3,5,8,13,21.....]每一位是前两位的和
   public static int abc(int n) {
       //计算第n位的值
       if (n > 2) {
           return abc(n - 1) + abc(n - 2);
       } else if (n==2) {
           return 2;
       }else return 1;
   }

   public static int def(int n){
       if (n<2){
           return 1;
       }else if (n<3){
           return 2;
       }
       int a1 = 1;
       int a2 = 2;
       int result = a1+a2;
       for (int i =4;i<=n;i++){
           a1 = a2;
           a2 = result;
           result = a1+a2;
       }
       return result;
   }

   public static int ghi(int n){
       if (n<2){
           return 1;
       }else if (n<3){
           return 2;
       }
       int[] arr = new int[n];
       arr[0] = 1;
       arr[1] = 2;
       for (int i=2;i<n;i++){
           arr[i] = arr[i-1]+arr[i-2];
       }
       return arr[n-1];

   }

   public static void main(String[] args) {
       int n = new Random().nextInt(20)+1;
       System.out.println(n);
       System.out.println(abc(n));
       System.out.println(def(n));
       System.out.println(ghi(n));
   }
}

java 递归recursion的使用的评论 (共 条)

分享到微博请遵守国家法律