-
조합의 수(memo)코딩/C언어 2019. 9. 19. 01:04반응형123456789101112131415161718192021222324252627282930313233343536373839#include <stdio.h>int comb(int n, int r, int** memo){if (r == 0 || r == n){memo[n][r] = 1;return memo[n][r];}else{if (memo[n - 1][r - 1] == 0)memo[n - 1][r - 1] = comb(n - 1, r - 1, memo);if (memo[n - 1][r] == 0)memo[n - 1][r] = comb(n - 1, r, memo);memo[n][r] = memo[n - 1][r - 1] + memo[n - 1][r];return memo[n][r];}}int main(void){int c, n, r, i, j;int **memo;scanf("%d %d", &n, &r);memo = (int**)malloc(sizeof(int*) * (n + 1));for (i = 0; i <= n; i++)memo[i] = (int*)malloc(sizeof(int) * (r + 1));for (i = 0; i <= n; i++)for (j = 0; j < r + 1; j++)memo[i][j] = 0;c = comb(n, r, memo);printf("%d\n", c);}
cs 결과:
반응형