当前位置:首页 > Java

java如何表示阶乘

2026-03-25 02:18:55Java

Java 表示阶乘的方法

使用循环实现阶乘

通过循环结构(如 forwhile)计算阶乘是最基础的方法。以下是示例代码:

public static long factorialWithLoop(int n) {
    if (n < 0) throw new IllegalArgumentException("n must be non-negative");
    long result = 1;
    for (int i = 2; i <= n; i++) {
        result *= i;
    }
    return result;
}
  • 参数校验:输入 n 必须为非负数,否则抛出异常。
  • 循环累乘:从 2 开始逐步累乘到 n,初始值为 1(因为 0! 和 1! 均为 1)。

使用递归实现阶乘

递归方法利用阶乘的数学定义(n! = n × (n-1)!)直接实现:

public static long factorialWithRecursion(int n) {
    if (n < 0) throw new IllegalArgumentException("n must be non-negative");
    return n <= 1 ? 1 : n * factorialWithRecursion(n - 1);
}
  • 基线条件:当 n 为 0 或 1 时返回 1。
  • 递归调用:将问题分解为 n 乘以 (n-1)! 的子问题。

处理大数阶乘

n 较大时(如 n > 20),long 类型会溢出,需使用 BigInteger

java如何表示阶乘

import java.math.BigInteger;

public static BigInteger factorialWithBigInteger(int n) {
    if (n < 0) throw new IllegalArgumentException("n must be non-negative");
    BigInteger result = BigInteger.ONE;
    for (int i = 2; i <= n; i++) {
        result = result.multiply(BigInteger.valueOf(i));
    }
    return result;
}
  • 大数运算BigInteger 支持任意精度的整数运算,避免溢出问题。

注意事项

  • 性能考量:递归方式代码简洁,但可能引发栈溢出(如 n 极大时),循环更安全。
  • 输入范围long 类型最大支持 20!(值为 2432902008176640000),BigInteger 无此限制。

示例调用

public static void main(String[] args) {
    System.out.println(factorialWithLoop(5)); // 输出 120
    System.out.println(factorialWithRecursion(5)); // 输出 120
    System.out.println(factorialWithBigInteger(50)); // 输出 30414093201713378043612608166064768844377641568960512000000000000
}

标签: 阶乘表示
分享给朋友:

相关文章

php实现阶乘

php实现阶乘

实现阶乘的 PHP 方法 阶乘是指从1乘到该数的连续乘积,通常表示为 n!。以下是几种在 PHP 中实现阶乘的方法。 使用递归函数 递归是一种通过函数调用自身来解决问题的方法。以下是递归实现阶乘的代…

js实现n的阶乘

js实现n的阶乘

递归方法实现阶乘 递归是计算阶乘最直观的方法,通过函数调用自身实现。 function factorial(n) { if (n === 0 || n === 1) {…

php递归实现阶乘

php递归实现阶乘

PHP递归实现阶乘的方法 递归是一种函数调用自身的技术,非常适合解决阶乘这类问题。阶乘的定义是:n! = n × (n-1) × (n-2) × ... × 1,其中0! = 1。 基础递归实现 f…

php实现阶乘

php实现阶乘

PHP实现阶乘的方法 阶乘是一个数学概念,表示从1乘到指定的正整数。在PHP中,可以通过多种方式实现阶乘计算。 使用递归方法 递归是一种函数调用自身的方法,适用于阶乘计算: function fa…

php怎么实现阶乘

php怎么实现阶乘

PHP 实现阶乘的方法 阶乘(Factorial)是一个数学运算,表示从 1 到该数的所有正整数的乘积。例如,5 的阶乘(5!)等于 1 × 2 × 3 × 4 × 5 = 120。PHP 可以通过多…

php实现阶乘算法

php实现阶乘算法

递归实现阶乘 递归是一种常见的实现阶乘的方法,通过不断调用自身函数来解决问题。递归实现阶乘的代码简洁直观。 function factorial($n) { if ($n <= 1)…