문제 번호 10872번 : 팩토리얼 - JAVA [자바]
728x90
https://www.acmicpc.net/problem/10872
10872번: 팩토리얼
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제 설명
하나의 수가 주어지면 그 수부터 1까지 모든 수를 곱한 수를 구하는 문제입니다. 재귀를 이용하여 풀어보겠습니다.
문제 풀이
사실 이 문제에서 재귀와 반복문이 다를 것이 없습니다. 어떻게 재귀를 반복문처럼 쓰는지 밑에 코드로 보여드리겠습니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//팩토리얼 변수
int n = sc.nextInt();
int result = factorial(n);
System.out.println(result);
}
public static int factorial(int n){
if(n <= 1) return 1;
return n*factorial(n-1);
}
}
해당 함수에 n-1을 매개변수로 넘겨주는 것이 핵심입니다. 그리고 return이 1일때는 더이상 재귀를 하면 안됩니다. n<=1이라고 선언한것은 0일때도 1를 출력해야되기 때문입니다.
'알고리즘 > 백준 문제 및 정답' 카테고리의 다른 글
문제 번호 25501번 : 재귀의 귀재 - JAVA [자바] (0) | 2022.12.15 |
---|---|
문제 번호 10870번 : 피보나치 수 5 - JAVA [자바] (0) | 2022.12.14 |
문제 번호 2738번 : 행렬 덧셈 - JAVA [자바] (0) | 2022.12.12 |
문제 번호 9020번 : 골드바흐의 추측 - JAVA [자바] (0) | 2022.09.15 |
문제 번호 4948번 : 베르트랑 공준 - JAVA [자바] (0) | 2022.09.13 |