package day09;
import java.util.Scanner;
/**
* Hw3
*
* @author Linguiyi
* @version 1.0
* @date 2023/7/12 10:34
* @description :从控制台输入一个正整数,计算该数的阶乘。例如输入5,阶乘为 5*4*3*2*1
*/
public class Hw3 {
public static void main(String[] args) {
int num = scanInt();
System.out.println(factorial(num));
}
public static int factorial(int n){
if (n<1){
return 0;
}
int sum = 1;
for (int i = 1; i < n+1; i++) {
sum *= i;
}
return sum;
}
public static int scanInt(){
Scanner s = new Scanner(System.in);
int num = 0;
if(s.hasNextInt()){
num = s.nextInt();
}else {
// 输入错误的信息
System.out.println("输入的不是整数!");
s.close();
return 0;
}
s.close();
return num;
}
}
方法二:递归
package day09;
import java.util.Scanner;
/**
* Hw3_1
*
* @author Linguiyi
* @version 1.0
* @date 2023/7/13 16:45
* @description :从控制台输入一个正整数,计算该数的阶乘。例如输入5,阶乘为 5*4*3*2*1
*
* 递归方法实现
*/
public class Hw3_1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println(factorial(scanner.nextInt()));
}
public static int factorial(int n){
if (n == 1){
return 1;
}
return n * factorial(n-1);
}
}