Search
Duplicate
📕

조합

주차
문제번호
2407
언어
C++
티어
실버
유형
수학
조합론
큰 수 연산
DP
nj_Blog
nj_상태
이해도
33%
풀이
사람
이해도 2
13 more properties

문제접근

놓쳤던 부분

코드

2476 KB

0 ms

#include <iostream> #include <string> #include <algorithm> using namespace std; string dp[101][101]; string addBigNumber(string num1, string num2) { string result = ""; int sum = 0; while (!num1.empty() || !num2.empty() || sum) { if (!num1.empty()) { sum += num1.back() - '0'; num1.pop_back(); } if (!num2.empty()) { sum += num2.back() - '0'; num2.pop_back(); } result += sum % 10 + '0'; sum /= 10; } reverse(result.begin(), result.end()); return (result); } string combination(int n, int m) { if (n == m || m == 0) return ("1"); if (dp[n][m] != "") return (dp[n][m]); dp[n][m] = addBigNumber(combination(n - 1, m - 1), combination(n - 1, m)); return (dp[n][m]); } int main(void) { int n, m; ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m; cout << combination(n, m); return (0); }
C++
복사