안녕하세요. 오늘은 짝을 맞출 거예요.
https://www.acmicpc.net/problem/31474
D_n을 n명이 있을 때 짝을 맞추는 경우의 수라고 합시다.
그러면 이렇게 생각할 수 있습니다.
첫번째 사람을 n-1명중 하나에 택하고 D_(n-2)를 곱하자! 그리고 D_0은 당연히 1이다.
그러면 쉽게 풀립니다.
N이 입력으로 들어오면 N이하의 모든 홀수들을 다 곱해주면 되거든요.
#include <iostream>
#define ll long long
using namespace std;
int main()
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
ll N, ans = 1;
cin >> N;
while (N)
{
ans *= N - 1;
N -= 2;
}
cout << ans;
}
감사합니다.