알고리즘/구현
BOJ(백준알고리즘) - 10872번 : 팩토리얼 - JAVA
naksnaks
2021. 1. 19. 16:11
반응형
[문제링크]
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)을 받게되어 재귀적으로 반복되어 돌아갑니다.
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);
}
}