이 글에서는 자바(Java)를 이용해 숫자의 팩토리얼(Factorial)을 구하는 방법을 알아봅니다. 팩토리얼이란 어떤 수 자신과 그보다 작은 모든 양의 정수를 곱한 값을 의미합니다.
팩토리얼은 0보다 큰 자연수에 적용되는 함수로, 숫자 뒤에 느낌표(!) 기호를 붙여 표현합니다. 예를 들어 5의 팩토리얼은 5!처럼 나타냅니다.
아래는 실제 동작 예시입니다.
입력 및 출력 예시
입력
숫자를 입력하세요 : 5
출력
5! = 5 × 4 × 3 × 2 × 1 이므로, 원하는 출력 결과는 다음과 같습니다.
5의 팩토리얼은 120 입니다
알고리즘
1단계 - 시작 2단계 - 세 개의 정수형 변수 선언: my_input_1, factorial, i 3단계 - 사용자에게 정수 입력을 요청하거나, 값 직접 지정(Hardcode) 4단계 - 값 읽기 5단계 - while 반복문 실행, 해당 숫자에 그보다 작은 수를 곱하고 숫자가 1이 될 때까지 반복 6단계 - 결과 출력 7단계 - 종료
예제 1: 사용자 입력으로 팩토리얼 구하기
다음 예제는 Scanner 객체를 통해 사용자가 직접 숫자를 입력하면, 그 값의 팩토리얼을 계산하여 콘솔에 출력합니다. 온라인 코딩 도구에서 실시간으로 직접 실행해 볼 수도 있습니다.
import java.util.Scanner;
public class FindFactorial{
public static void main(String arg[]){
int my_input, factorial, i;
System.out.println("필요한 패키지를 가져왔습니다");
Scanner my_scanner = new Scanner(System.in);
System.out.println("Scanner 객체가 정의되었습니다");
System.out.println("숫자를 입력하세요: ");
my_input = my_scanner.nextInt();
factorial=1;
for(i=1;i<=my_input;i++){
factorial=factorial*i;
}
System.out.printf("%d의 팩토리얼은 %d 입니다" , my_input,factorial);
}
}실행 결과
필요한 패키지를 가져왔습니다 Scanner 객체가 정의되었습니다 숫자를 입력하세요: 5 5의 팩토리얼은 120 입니다
예제 2: 미리 정의된 값으로 팩토리얼 구하기
이번 예제에서는 정수값이 코드 안에 미리 정의되어 있으며, 해당 값을 읽어와 콘솔에 출력합니다. 사용자 입력 없이 로직만 확인할 때 유용한 방식입니다.
public class FindFactorial{
public static void main(String arg[]){
int my_input, factorial, i;
my_input = 5;
System.out.printf("입력된 숫자는 %d 입니다",my_input );
factorial=1;
for(i=1;i<=my_input;i++){
factorial=factorial*i;
}
System.out.printf("
%d의 팩토리얼은 %d 입니다" , my_input,factorial);
}
}실행 결과
입력된 숫자는 5 입니다 5의 팩토리얼은 120 입니다
마무리
지금까지 자바에서 for 반복문을 활용해 팩토리얼을 구하는 두 가지 방법을 살펴보았습니다. 하나는 Scanner를 이용해 사용자 입력을 받는 방식이고, 다른 하나는 값을 코드에 직접 지정하는 방식입니다. 반복문 대신 재귀 함수(recursion)를 사용하는 방법도 있으니, 개념에 익숙해진 후 도전해 보는 것도 좋은 학습 방법입니다.