代码改变世界

求n阶乘

2008-06-30 14:50  is_wolf  阅读(183)  评论(0)    收藏  举报

求一个数的阶乘可以有两种方法来实现它。一是用递归,而是非递归方法。

  • 用递归:public static int doFactorial(int n) {   if (n < 0) {      // 传入的n不合法           return -1;     // 返回-1,说明参数不合法   }   if (n == 0) {// 0!=1           return 1;   } else if (n == 1) {// 退出递归的条件           return 1;   } else {// 满足进行递归的条件           return n * doFactorial1(n - 1);   }  }
  • 非递归:public static int doFactorial(int n) {   int result = 1;// 结果   if (n < 0) {// 传入的n不合法    return -1;// 返回-1,说明参数不合法   }   if (n == 0) {// 0!=1    return 1;   }
  •   for (int i = 1; i <= n; i++) {// 从1~n相乘    result *= i;   }   return result;// 返回结果  }