코딩 테스트(JAVA)/백준

[백준 10872번] 팩토리얼(재귀)

Lea Hwang 2022. 4. 26. 01:39

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

 

 

문제 분석

팩토리얼을 재귀로 구현하는 문제입니다.

if ~ else를 활용해서 구현해보겠습니다.

 

 

실패 코드

import java.util.*;

public class Main {
	public int Factorial(int N) {
		if(N == 1) return 1;
		else {
			return N * Factorial(N-1);
		}
		
	}

	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		int N = kb.nextInt();
		System.out.println(T.Factorial(N));

	}

}

실패 원인 : 입력0을  고려하지 않았습니다.

0을 입력해도 1과 마찬가지로 1이 출력되도록 코드 수정을 해보겠습니다.

 

 

성공 코드

import java.util.*;

public class Main {
	public int Factorial(int N) {
		if(N <= 1) return 1;
		else {
			return N * Factorial(N-1);
		}
		
	}

	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		int N = kb.nextInt();
		System.out.println(T.Factorial(N));

	}

}

 

 


 

 

재귀함수로 구현한 팩토리얼 문제를 인프런에서 풀고 포스팅한 적이 있습니다. 같이 보시면 도움되실 것 같아 올려드립니다.

팩토리얼

 

팩토리얼

팩토리얼 자연수 N이 입력되면 N!를 구하는 프로그램을 작성하세요. 예를 들어 5! = 5*4*3*2*1=120입니다. ▣ 입력설명 첫 번째 줄에 자연수 N(1<=N<=100)이 주어집니다. ▣ 출력설명 첫 번째 줄에 N팩토리

lealea.tistory.com

 

'코딩 테스트(JAVA) > 백준' 카테고리의 다른 글

[백준 15649번] N과 M(1)  (0) 2022.05.03
[백준 14888번] 연산자 끼워넣기  (0) 2022.04.27
[백준 1789번] 수들의 합  (0) 2022.04.26
[백준 1292번] 쉽게 푸는 문제  (0) 2022.04.24
[백준 1978번] 소수 찾기  (0) 2022.04.23