欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

5!

程序员文章站 2024-03-20 09:15:46
...

public class Demo_Digui {

   /**

    * @param args

    * 递归:方法自己调用自己

    * 5!

    * 5 * 4 * 3 * 2 * 1

    * 

    * 5 * fun(4)(代表4!)

    *    4 * fun(3)(代表3!)

    *           3 * fun(2)(代表2!) 

    *                 2 * fun(1)(代表1!)

    * 递归的弊端:不能调用次数过多,容易导致栈内存溢出

    * 递归的好处:不用知道循环次数

    * 

    * 构造方法是否可以递归调用?

    * 构造方法不能使用递归调用

    * 

    * 递归调用是否必须有返回值?

    * 不一定(可以有,也可以没有)

    */

   public static void main(String[] args) {

      /*int result = 1;

      

      for(int i = 1; i <= 5; i++) {

         result = result * i;

      }

      

      System.out.println(result);*/

      System.out.println(fun(6000));

   }

   

   public static int fun(int num) {

      if(num == 1) {

         return 1;

      }else {

         return num * fun(num - 1);

      }

   }

}