recursive (mind your stack and time) works for n = 0..30 for all k educational purpose
| 298 | // works for n = 0..30 for all k |
| 299 | // educational purpose |
| 300 | uint32_t rcombinations(uint16_t n, uint16_t k) |
| 301 | { |
| 302 | if (k > (n-k)) k = n - k; // symmetry |
| 303 | if (k == 0) return 1; |
| 304 | return (n * rcombinations(n - 1, k - 1)) / k; |
| 305 | } |
| 306 | |
| 307 | |
| 308 | // recursive |