본문 바로가기
자바(Java)

Java에서 주어진 숫자의 팩토리얼을 구하는 프로그램

by 코딩하는 욤욤이 2024. 10. 14.
반응형

1. 팩토리얼이란?
팩토리얼(factorial)이란, 어떤 숫자 n이 주어졌을 때, 1부터 n까지의 모든 숫자를 곱한 값입니다. 팩토리얼은 보통 n!로 표시되며, 예를 들어 5!는 5 * 4 * 3 * 2 * 1 = 120입니다.

2. 자바 프로그램 구조
입력: 사용자로부터 숫자를 입력받습니다.
처리: 입력받은 숫자의 팩토리얼을 계산합니다.
출력: 계산된 결과를 화면에 출력합니다.
이제 코드를 한 줄씩 살펴보겠습니다.

3. 코드

import java.util.Scanner;

public class Factorial {
    public static void main(String[] args) {
        // 1. 스캐너 객체를 사용해 사용자로부터 숫자를 입력받습니다.
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a number: ");  // 사용자에게 숫자를 입력하라는 메시지를 출력
        int number = scanner.nextInt();  // 사용자가 입력한 숫자를 변수 number에 저장

        // 2. 팩토리얼을 계산하는 부분
        long factorial = 1;  // 결과를 저장할 변수. 초기값은 1로 설정
        for (int i = 1; i <= number; i++) {
            factorial *= i;  // factorial = factorial * i
        }

        // 3. 계산된 팩토리얼을 출력
        System.out.println("Factorial of " + number + " is: " + factorial);
        
        // 4. 스캐너 닫기
        scanner.close();
    }
}

4. 코드 설명

  1. import java.util.Scanner;
    • Scanner 클래스를 사용하여 사용자의 입력을 받기 위해 필요한 코드입니다.
  2. Scanner scanner = new Scanner(System.in);
    • Scanner 객체를 생성하여 사용자로부터 데이터를 입력받는 도구로 사용합니다.
  3. int number = scanner.nextInt();
    • 사용자가 입력한 정수를 읽어서 변수 number에 저장합니다.
  4. long factorial = 1;
    • 팩토리얼 값을 저장하기 위한 변수를 선언합니다. 팩토리얼은 곱셈이므로 1로 시작합니다.
  5. for (int i = 1; i <= number; i++) { factorial *= i; }
    • for문은 1부터 입력된 number까지 반복하면서 각 숫자를 차례로 곱합니다.
  6. System.out.println("Factorial of " + number + " is: " + factorial);
    • 계산된 팩토리얼 값을 출력합니다.

5. 예시 실행

사용자가 5를 입력했을 때:

Enter a number: 5
Factorial of 5 is: 120

팁:

  • 팩토리얼 값은 금방 커지기 때문에, 큰 숫자에 대한 팩토리얼을 계산할 때는 long 타입을 사용하는 것이 안전합니다. int 타입은 최대 범위를 넘어서면 에러가 날 수 있습니다.
반응형