👩💻/C, C++, STL
제 16장 실력 다지기 연습문제 02 [순열과 조합]
글로랴
2021. 6. 30. 20:13
#include <stdio.h>
int Fact(int n)
{
int num = 1; //★
for (int i = 1; i <= n; i++)
{
num *= i;
}
return num;
}
int Perm(int n, int r)
{
int f = Fact(n);
int num = 1; //★
for (int i = 1; i <= (n - r); i++)
{
num *= i;
}
return f / num;
// 한 줄로 정의: return Fact(n) / Fact(n - r);
}
int Combi(int n, int r)
{
int p = Perm(n, r);
int num = 1; //★
for (int i = 1; i <= r; i++)
{
num *= i;
}
return p / num;
// 한 줄로 정의: return Perm(n, r) / Fact(r);
}
int main()
{
int n1, n2;
printf("두 개의 자연수 입력>> ");
scanf("%d %d", &n1, &n2);
printf("순열 값: %d\n", Perm(n1, n2));
printf("조합 값: %d\n", Combi(n1, n2));
return 0;
}
반응형