黑马程序员技术交流社区

标题: 递归法 [打印本页]

作者: vipzh    时间: 2012-12-1 22:42
标题: 递归法
怎么用递归法求一个数的阶乘啊?求指教

作者: 王震阳老师    时间: 2012-12-1 23:14
本帖最后由 王震阳 于 2012-12-1 23:16 编辑
  1. class DieDaiTest //最简单的一个迭代计算阶乘
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 System.out.println(sum(6));
  6.         }
  7.         public static int sum(int num)
  8.         {
  9.                 int result=num;
  10.                 if(num>1)
  11.                 {
  12.                         result*=sum(--num);
  13.                 }
  14.                 return result;
  15.         }
  16. }
复制代码

作者: 王舒玮    时间: 2012-12-2 00:00
递归求阶乘,我感觉这个方法比较简单快捷!
public class DiGuiDemo {
          public static void main(String[] args) {
                     DiGuiDemo dgd = new DiGuiDemo();
                     System.out.println(dgd.jc(5));
     }
     public int jc(int n) { //5 - 4 - 3 - 2 - 1
                    if (n == 1) {
                    return 1;
                    } else {
                                return n * jc(n - 1);
                    }
           }
}
                      //解析:
                     //5*jc(4)
                     //5*4*jc(3) 5*4*6
                    //5*4*3*jc(2) 5*4*3*2
                    //5*4*3*2*jc(1)   1





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2