Java 程序,用递归计算一个数的阶乘


2022年3月16日, Learn eTutorial
1356

这里我们解释如何编写一个 Java 程序来计算一个数的阶乘。首先,我们需要从用户那里读取这个数。然后我们将调用 Fact() 函数来计算这个数的阶乘。

如何计算数字 n 的阶乘?

我们可以使用以下公式计算数字 n 的阶乘:

n 的阶乘 n!=1 * 2 * 3 * 4 *........(n-1) * n

一个数 n 的阶乘是所有小于或等于 n 的正整数的乘积。数 n 的阶乘表示为 n!

示例:5 的阶乘是 5!=1 * 2 * 3 * 4 * 5

                                            =120  

如何实现 Java 程序来计算一个数的阶乘?

首先,我们需要声明 Fact 类。然后声明整数变量 n,f。创建一个扫描器类 sc 的对象来读取整数。然后从用户那里读取整数到变量 n。创建 Fact 类的对象为 Fact obj=new Fact()。然后调用递归函数 fact(n),递归函数是在执行期间调用自身的函数。

fact(int y) 函数中,它会检查参数 y>1,如果为 true,则会调用自身函数 fact(y-1),直到 y 变为 1。然后它会返回该数字的阶乘。所以我们可以将数字 n 的阶乘显示为 f

算法

步骤 1:声明带有公共修饰符的 Fact 类。

步骤 2:打开 main() 以启动程序,Java 程序执行从 main() 开始

步骤 3:声明整数变量 n,f

步骤 4:创建扫描器类对象 sc

步骤 5:将整数读入变量 n

步骤 6:创建类 Fact 的对象为 obj。

步骤 7:调用函数 fact(n) 为 f=obj.fact(n)

步骤 8:显示数字的阶乘为 f。

函数 int fact(int y)

步骤 1:检查是否 y>1,如果是则返回 y*fact(y-1)

步骤 2:返回 1。

 

Java 源代码

                                          import java.util.Scanner;
public class Fact {
    public static void main(String[] args) {
        int n, f;
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter any integer number:");
        n = sc.nextInt();
        Fact obj = new Fact();
        f = obj.fact(n);
        System.out.println("Factorial of " + n + " is " + f);
    }
    int fact(int y) {
        if (y > 1) {
            return (y * fact(y - 1));
        }
        return 1;
    }
}
                                      

输出

Enter any integer number:5

Factorial of 5 is 120