문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다.
출력
첫째 줄에 N!을 출력한다.
풀이
재귀 함수를 사용한다.
재귀 함수에 매개변수로 n을 넘기고 다음번에는 n-1을 넘긴다.
n이 0이되면 재귀를 종료한다.
소스코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println(factorial(n));
}
public static int factorial(int n) {
if (n == 0) {
return 1;
}
return n * factorial(n - 1);
}
}
문제 출처 : www.acmicpc.net/problem/10872
반응형
'공부 > 알고리즘' 카테고리의 다른 글
[백준] 11399번 ATM (0) | 2020.11.26 |
---|---|
[백준] 1931번 회의실배정 (0) | 2020.11.24 |
[백준] 11047번 동전 0 (0) | 2020.11.23 |
[백준] 2798번 블랙잭 (0) | 2020.11.22 |
[백준] 10870번 피보나치 수 5 (0) | 2020.11.14 |