반응형
[문제링크]
https://www.acmicpc.net/problem/10872
[문제]
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);
}
}
궁금하신 부분이나 부족한 점은 댓글로 알려주시면 감사하겠습니다.
반응형
'알고리즘 > 구현' 카테고리의 다른 글
BJ_B2_15552_빠른A+B - Java (0) | 2022.01.20 |
---|---|
SWEA(SW EXPERT ACADEMY) - 1954번 : 달팽이 숫자 - JAVA (0) | 2021.01.21 |
SWEA(SW Expert Academy) - 1986번 : 지그재그 숫자 - JAVA (0) | 2021.01.19 |
BOJ(백준알고리즘) - 15963번 : CASIO - JAVA (0) | 2021.01.18 |
BOJ(백준알고리즘) - 5532번 : 방학 숙제 - JAVA (0) | 2021.01.18 |
댓글