알고리즘/구현

BOJ(백준알고리즘) - 10872번 : 팩토리얼 - JAVA

naksnaks 2021. 1. 19.
반응형

[문제링크]

 

https://www.acmicpc.net/problem/10872

 

10872번: 팩토리얼

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

www.acmicpc.net


[문제]

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.


[입력]

첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다.


[출력]

첫째 줄에 N!을 출력한다.


[예제 입력 1]

10


[예제 출력 1]

3628800


[예제 입력 2]

0


[예제 출력 2]

1


[설명]

이 문제는 팩토리얼을 구현할 수 있는가에 대한 문제입니다.

팩토리얼을 구현하는 방법에는 2가지가 있는데,

첫번째는 재귀함수이고 두번째는 반복함수입니다.

이 두가지 방법중에서 제가 구현한 방법은 재귀함수입니다.

새로운 factorial이라는 함수를 새로 만들고 숫자가 2보다 작게 되면 1을 return 받습니다.

2와 같거나 2보다 큰 경우에는 return값에 a와 factorial(a - 1)을 받게되어 재귀적으로 반복되어 돌아갑니다.

 

 

백준 알고리즘 10872번 JAVA풀이

 

 

 

import java.util.Scanner;

public class Main {

	public static int factorial (int a) {
		if(a<2)
            return 1;
        else
            return a * factorial(a-1);
	}

	public static void main(String[] args) {
		Scanner scann = new Scanner(System.in);
        int N = scann.nextInt();
        int answer = factorial(N);
        System.out.println(answer);
	}
}

 

 

 

궁금하신 부분이나 부족한 점은 댓글로 알려주시면 감사하겠습니다.

반응형

댓글

💲 추천 글