[Java] 计算阶乘(非递归) →→→→→进入此内容的聊天室

来自 , 2020-09-30, 写在 Java, 查看 105 次.
URL http://www.code666.cn/view/4e4b5fbb
  1. public class Factorial {
  2.         /**
  3.          * 计算n!的值
  4.          */
  5.         public long getFactorial(int n) {
  6.                 // 因为当n大于17时,n!的值超过了long类型的范围,会出现错误。因此这里限定了n必须小于等于17。
  7.                 // 数学上没有负数的阶乘的概念,因此n必须大于等于0。
  8.                 if ((n < 0) || (n > 17)) {
  9.                         System.err.println("n的值范围必须在区间[0, 17]内!");
  10.                         return -1;
  11.                 } else if (n == 0) {
  12.                         // 0!的值为1
  13.                         return 1;
  14.                 } else {
  15.                         long result = 1;
  16.                         for (; n > 0; n--) {
  17.                                 result *= n;
  18.                         }
  19.                         return result;
  20.                 }
  21.         }
  22.         public static void main(String[] args) {
  23.                 Factorial test = new Factorial();
  24.                 System.out.println(test.getFactorial(15));//1307674368000
  25.         }
  26. }
  27.  

回复 "计算阶乘(非递归)"

这儿你可以回复上面这条便签

captcha