题目

读入 n,计算 n 的阶乘

思路

读非负 n,long fact = 1,for (int i = 2; i <= n; i++) fact *= i;n==0 时结果为 1。(正文程序里用 Java 的 for/while 实现同样逻辑即可。)

解题分析

0! 定义为 1,循环从 2 乘到 n。n 稍大就要 long 类型,再大则溢出,题目需约定 n 上限。

完整程序

import java.io.*;

public class Main {
    public static void main(String[] args) {
        int n = 5;
        long f = 1;
        for (int i = 2; i <= n; i++) f *= i;
        System.out.println(f);
    }
}

运行示例

输出:

120