입력 코드
#include <stdio.h>
int factorial(int num) {
int i, ans = 1;
for (i = 1; i <= num; i++) {
ans *= i;
}
return ans;
}
main() {
int N, K, C;
scanf("%d %d", &N, &K);
C = factorial(N) / (factorial(K)*factorial(N - K));
printf("%d\n", C);
}
코드 설명
팩토리얼 / 재귀함수를 이용하는 문제
#include <stdio.h>
main() {
int N, K, C;
scanf("%d %d", &N, &K);
int numerator = 1, denominator = 1;
int i;
for (i = 0; i < K; i++) {
numerator *= N - i;
denominator *= K - i;
}
C = denominator / numerator;
printf("%d", C);
}
처음에는 분자 분모를 따로 반복문으로 계산해서 마지막에 나눈 몫으로 이항계수를 계산했더니 계속 0이 출력되었다. 왜지,,
#include <stdio.h>
int factorial(int num) {
int i, ans = 1;
for (i = 1; i <= num; i++) {
ans *= i;
}
return ans;
}
main() {
int N, K, C;
scanf("%d %d", &N, &K);
C = factorial(N) / (factorial(K)*factorial(N - K));
printf("%d\n", C);
}
찾아보니까 팩토리얼을 따로 함수로 작성해서 이항계수를 구하는 방법도 있고 재귀함수를 이용하는 방법도 있다. 그런데 아직 재귀함수까지는 잘 활용하지 못하는 것 같다.
↓↓↓ 참고한 사이트
[백준] 11050번 - 이항 계수 1 ( C 문제 풀이 )
백준 11050번 문제 - 이항 계수 1 이항 계수 위키 백과 : 주어진 크기의 조합의 가짓수 입니다. 수학 백과 : 이항 정리에서 전개된 항의 계수 공식 문제 풀이 공식만 잘 보면 너무나 쉽습니다. 물론
hooit.tistory.com
이항계수1 백준 11050번
문제 이항 계수1 백준 11050번 리뷰 N개중에 K개를 고르는 이항계수를 작성하는 문제다. 파스칼의 삼각형도 이항계수를 기반으로 풀 수 있다. 재귀로 푼 이항계수 포스팅이 아주 도움됬다. 맞은 코
gdlovehush.tistory.com
문제 출처
11050번: 이항 계수 1
첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\))
www.acmicpc.net
'C' 카테고리의 다른 글
#23. [백준_C언어] 2577 : 숫자의 개수 (0) | 2021.01.11 |
---|---|
#22. [백준_C언어] 1110 : 더하기 사이클 (0) | 2021.01.09 |
#20. [백준_C언어] 10250 : ACM 호텔 (0) | 2021.01.08 |
#19. [백준_C언어] 2798 : 블랙잭 (0) | 2021.01.08 |
#18. [백준_C언어] 1259 : 팰린드롬수 (0) | 2021.01.07 |