题目
封装一个独立的函数计算整数 n 的阶乘 n!,并在 main 函数中调用并输出结果。
输入格式:一行输入一个非负整数 n。
输出格式:输出一个整数,表示 n! 的阶乘结果,末尾换行。
数据范围与约定:0 ≤ n ≤ 20。
思路与算法
1. 函数模块化设计
将业务逻辑封装为 long factorial(int n),参数传递 n,通过返回值交付计算结果,使代码具备高内聚性与复用性。
2. 64 位整数防溢出
20 以内的阶乘必须采用 long 保存和返回,防止 32 位 int 发生数值溢出。
完整程序
import java.util.Scanner;
public class Main {
// 独立静态方法计算阶乘,使用 long 防溢出
public static long factorial(int n) {
long res = 1;
for (int i = 2; i <= n; i++) {
res *= i;
}
return res;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(factorial(n));
}
}运行示例
输入:
6输出:
720