✅ 문제

1보다 큰 정수(N)을 입력하며 N!값을 구하시오.
*팩토리얼이란 N의 수보다 작거나 같은 모든 양의 정수의 곱
ex) 3! = 1 x 2 x 3 => 6
✅ 코드
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("입력 : ");
int n = sc.nextInt();
// 변수 초기화
int factorial = 1;
// n부터 1까지의 모든 양의 정수를 곱함
for (int i = 1; i <= n; i++) {
factorial *= i;
}
// 결과 출력
System.out.println("출력 : " + factorial);
sc.close();
}
}
✅ 추론과정
int factorial = 1;: 팩토리얼 값을 저장할 변수 factorial을 초기화시켜준다.
팩토리얼은 1부터 시작하므로 초기값을 1로 설정한다.
n의 크기만큼 for문을 돌려서 1부터 입력된 정수 n까지의 모든 양의 정수를 곱하여 팩토리얼 값을 계산한다.
이 작업은 factorial 변수에 계속해서 값을 곱해서 업데이트해주는 것인데,
쉽게 말해서 1부터 정수 n까지 factorial에 곱해주면서 그 값을 누적시켜주는 것이다.
계산된 팩토리얼 값을 출력하고 Scanner 객체를 닫아서 자원을 해제해준다.
'코딩테스트 > JavaFestival(스마트인재개발원)' 카테고리의 다른 글
| [자바페스티벌] 보너스1번 - A-B를 출력하다가 A와 B 입력이 모두 0이면 종료되는 프로그램 (0) | 2024.04.23 |
|---|---|
| 스마트 인재개발원 자바페스티벌 규칙 & 잘 하는 꿀팁 !! (1) | 2024.04.15 |
| [자바페스티벌] 30번 - 문장에 포함된 알파벳의 빈도 구하는 프로그램 (대소문자 구별x) (0) | 2024.03.29 |
| [자바페스티벌] 29번 - 두 수의 합 맞추기 / 기회는 5번! (0) | 2024.03.29 |
| [자바페스티벌] 28번 - 문자열 형태의 2진수를 입력받아 10진수로 바꾸기 (0) | 2024.03.28 |