Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java)로 숫자의 팩토리얼 구하는 프로그램 만들기

이 글에서는 자바(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)를 사용하는 방법도 있으니, 개념에 익숙해진 후 도전해 보는 것도 좋은 학습 방법입니다.