n 的阶乘是 n*(n-1)(n-2)……1,比如 5 的阶乘是 5432*1。

本文介绍两种用 Java 计算阶乘的方法:

实现方式一:循环

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个正整数 n:");
        int n = scanner.nextInt();
        int result = 1;
        for (int i = 1; i <= n; i++) {
            result *= i;
        }
        System.out.println(n + "的阶乘是:" + result);
    }
}

实现方式二:递归

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个正整数 n:");
        int n = scanner.nextInt();
        int result = factorial(n);
        System.out.println(n + "的阶乘是:" + result);
    }

    public static int factorial(int n) {
        if (n == 1) {
            return 1;
        } else {
            return n * factorial(n - 1);
        }
    }
}

第一种方式使用循环,依次将 1 到 n 的数相乘得到阶乘,第二种方式使用递归,将 n 的阶乘转化为 (n-1) 的阶乘乘以 n。两种方式的结果是一样的。

Java 计算阶乘 - 两种实现方式 (循环与递归)

原文地址: https://www.cveoy.top/t/topic/j7YM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录