컴공댕이 공부일지

[ java ] 백준 ( 11050 이항계수 1 ) ★팩토리얼 재귀함수 / 이항정리 본문

PS/코딩 문제 풀이 모음

[ java ] 백준 ( 11050 이항계수 1 ) ★팩토리얼 재귀함수 / 이항정리

은솜솜솜 2023. 5. 2. 22:22
728x90

백준 11050 이항계수 1

브론즈 1

 

https://www.acmicpc.net/problem/11050

 

11050번: 이항 계수 1

첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\))

www.acmicpc.net

 

사실 위 문제는 단순히 그냥 nCk 구하기만 하면 되는 문제이다.

근데 확통 너무 오랜만이라 순열 조합조차 새로워서...ㅎㅎ

이항 정리에 대해 간단히 알아보았다.

 

 

이항정리

 

또한 순열 식을 계산해 출력하기 위해서 팩토리얼을 계산해야 하는데,

이 때 재귀 함수를 활용했다! :) 

 

팩토리얼은 재귀 함수 계산 예제로 매번 나오는 기초기에..ㅎㅎ

가볍게 구현해보았다.

 

 

 

정답코드

import java.util.Scanner;

public class Main {
	
	//팩토리얼 계산 메소드 #재귀 함수
	static int factorial(int n) {
		if(n==1) {
			return n;
		} if(n==0) { // 0! = 1
			return 1;
		}else {
			return n*factorial(n-1);
		}
		
	}
	
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		int n=s.nextInt(); //n값 입력받기
		int k=s.nextInt(); //k값 입력받기
		
		int ans = factorial(n)/(factorial(n-k)*factorial(k));
		System.out.println(ans);
		
	}

}
728x90