Given a number **N** which is the size of the set and a number **K**, the task is to find the count of subsets, of the set of N elements, having at most K elements in it, i.e. the size of subset is less than or equal to K.**Examples:**

Input:N = 3, K = 2Output:6

Subsets with 1 element in it = {1}, {2}, {3}

Subsets with 2 elements in it = {1, 2}, {1, 3}, {1, 2}

Since K = 2, therefore only the above subsets will be considered for length atmost K. Therefore the count is 6.Input:N = 5, K = 2Output:615

**Approach:**

- Since the number of subsets of exactly K elements that can be made from N items is (
^{N}C_{K}). Therefore for “at most”, the required count will be

- Inorder to calculate the value of
^{N}C_{K}, Binomial Coefficient is used. Please refer this article to see how it works.

- So to get the required subsets for length atmost K, run a loop from 1 to K and add the
^{N}C_{i}for each value of i.

Below is the implementation of the above approach:

## C++

`// C++ code to find total number of` `// Subsets of size at most K` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to compute the value` `// of Binomial Coefficient C(n, k)` `int` `binomialCoeff(` `int` `n, ` `int` `k)` `{` ` ` `int` `C[n + 1][k + 1];` ` ` `int` `i, j;` ` ` `// Calculate value of Binomial Coefficient` ` ` `// in bottom up manner` ` ` `for` `(i = 0; i <= n; i++) {` ` ` `for` `(j = 0; j <= min(i, k); j++) {` ` ` `// Base Cases` ` ` `if` `(j == 0 || j == i)` ` ` `C[i][j] = 1;` ` ` `// Calculate value using previously` ` ` `// stored values` ` ` `else` ` ` `C[i][j] = C[i - 1][j - 1] + C[i - 1][j];` ` ` `}` ` ` `}` ` ` `return` `C[n][k];` `}` `// Function to calculate sum of` `// nCj from j = 1 to k` `int` `count(` `int` `n, ` `int` `k)` `{` ` ` `int` `sum = 0;` ` ` `for` `(` `int` `j = 1; j <= k; j++) {` ` ` `// Calling the nCr function` ` ` `// for each value of j` ` ` `sum = sum + binomialCoeff(n, j);` ` ` `}` ` ` `return` `sum;` `}` `// Driver code` `int` `main()` `{` ` ` `int` `n = 3, k = 2;` ` ` `cout << count(n, k);` ` ` `n = 5, k = 2;` ` ` `cout << count(n, k);` ` ` `return` `0;` `}` |

## Java

`// Java code to find total number of` `// Subsets of size at most K` `import` `java.lang.*;` `class` `GFG` `{` `// Function to compute the value` `// of Binomial Coefficient C(n, k)` `public` `static` `int` `binomialCoeff(` `int` `n, ` `int` `k)` `{` ` ` `int` `[][] C = ` `new` `int` `[n + ` `1` `][k + ` `1` `];` ` ` `int` `i, j;` ` ` `// Calculate value of Binomial Coefficient` ` ` `// in bottom up manner` ` ` `for` `(i = ` `0` `; i <= n; i++)` ` ` `{` ` ` `for` `(j = ` `0` `; j <= Math.min(i, k); j++)` ` ` `{` ` ` `// Base Cases` ` ` `if` `(j == ` `0` `|| j == i)` ` ` `C[i][j] = ` `1` `;` ` ` `// Calculate value using previously` ` ` `// stored values` ` ` `else` ` ` `C[i][j] = C[i - ` `1` `][j - ` `1` `] + C[i - ` `1` `][j];` ` ` `}` ` ` `}` ` ` `return` `C[n][k];` `}` `// Function to calculate sum of` `// nCj from j = 1 to k` `public` `static` `int` `count(` `int` `n, ` `int` `k)` `{` ` ` `int` `sum = ` `0` `;` ` ` `for` `(` `int` `j = ` `1` `; j <= k; j++)` ` ` `{` ` ` `// Calling the nCr function` ` ` `// for each value of j` ` ` `sum = sum + binomialCoeff(n, j);` ` ` `}` ` ` `return` `sum;` `}` `// Driver code` `public` `static` `void` `main(String args[])` `{` ` ` `GFG g = ` `new` `GFG();` ` ` `int` `n = ` `3` `, k = ` `2` `;` ` ` `System.out.print(count(n, k));` ` ` `int` `n1 = ` `5` `, k1 = ` `2` `;` ` ` `System.out.print(count(n1, k1));` `}` `}` `// This code is contributed by SoumikMondal` |

## Python3

`# Python code to find total number of` `# Subsets of size at most K` `# Function to compute the value` `# of Binomial Coefficient C(n, k)` `def` `binomialCoeff(n, k):` ` ` `C ` `=` `[[` `0` `for` `i ` `in` `range` `(k ` `+` `1` `)] ` `for` `j ` `in` `range` `(n ` `+` `1` `)];` ` ` `i, j ` `=` `0` `, ` `0` `;` ` ` `# Calculate value of Binomial Coefficient` ` ` `# in bottom up manner` ` ` `for` `i ` `in` `range` `(n ` `+` `1` `):` ` ` `for` `j ` `in` `range` `( ` `min` `(i, k) ` `+` `1` `):` ` ` `# Base Cases` ` ` `if` `(j ` `=` `=` `0` `or` `j ` `=` `=` `i):` ` ` `C[i][j] ` `=` `1` `;` ` ` `# Calculate value using previously` ` ` `# stored values` ` ` `else` `:` ` ` `C[i][j] ` `=` `C[i ` `-` `1` `][j ` `-` `1` `] ` `+` `C[i ` `-` `1` `][j];` ` ` `return` `C[n][k];` `# Function to calculate sum of` `# nCj from j = 1 to k` `def` `count(n, k):` ` ` `sum` `=` `0` `;` ` ` `for` `j ` `in` `range` `(` `1` `, k` `+` `1` `):` ` ` `# Calling the nCr function` ` ` `# for each value of j` ` ` `sum` `=` `sum` `+` `binomialCoeff(n, j);` ` ` `return` `sum` `;` `# Driver code` `if` `__name__ ` `=` `=` `'__main__'` `:` ` ` `n ` `=` `3` `;` ` ` `k ` `=` `2` `;` ` ` `print` `(count(n, k), end` `=` `"");` ` ` `n1 ` `=` `5` `;` ` ` `k1 ` `=` `2` `;` ` ` `print` `(count(n1, k1));` `# This code is contributed by 29AjayKumar` |

## C#

`// C# code to find total number of` `// Subsets of size at most K` `using` `System;` `class` `GFG` `{` ` ` `// Function to compute the value` ` ` `// of Binomial Coefficient C(n, k)` ` ` `public` `static` `int` `binomialCoeff(` `int` `n, ` `int` `k)` ` ` `{` ` ` `int` `[,] C = ` `new` `int` `[n + 1, k + 1];` ` ` `int` `i, j;` ` ` ` ` `// Calculate value of Binomial Coefficient` ` ` `// in bottom up manner` ` ` `for` `(i = 0; i <= n; i++)` ` ` `{` ` ` `for` `(j = 0; j <= Math.Min(i, k); j++)` ` ` `{` ` ` ` ` `// Base Cases` ` ` `if` `(j == 0 || j == i)` ` ` `C[i, j] = 1;` ` ` ` ` `// Calculate value using previously` ` ` `// stored values` ` ` `else` ` ` `C[i, j] = C[i - 1, j - 1] + C[i - 1, j];` ` ` `}` ` ` `}` ` ` ` ` `return` `C[n, k];` ` ` `}` ` ` ` ` `// Function to calculate sum of` ` ` `// nCj from j = 1 to k` ` ` `public` `static` `int` `count(` `int` `n, ` `int` `k)` ` ` `{` ` ` `int` `sum = 0;` ` ` `for` `(` `int` `j = 1; j <= k; j++)` ` ` `{` ` ` ` ` `// Calling the nCr function` ` ` `// for each value of j` ` ` `sum = sum + binomialCoeff(n, j);` ` ` `}` ` ` ` ` `return` `sum;` ` ` `}` ` ` ` ` `// Driver code` ` ` `public` `static` `void` `Main()` ` ` `{` ` ` `int` `n = 3, k = 2;` ` ` `Console.Write(count(n, k));` ` ` ` ` `int` `n1 = 5, k1 = 2;` ` ` `Console.Write(count(n1, k1));` ` ` `}` `}` `// This code is contributed by AnkitRai01` |

## Javascript

`<script>` `// Javascipt implementation of the` `// above approach` `// Function for the binomial coefficient` `function` `binomialCoeff(n, k)` `{` ` ` `var` `C = ` `new` `Array(n + 1);` ` ` `// Loop to create 2D array using 1D array` ` ` `for` `(` `var` `i = 0; i < C.length; i++) {` ` ` `C[i] = ` `new` `Array(k + 1);` ` ` `}` ` ` `var` `i, j;` ` ` ` ` `// Calculate value of Binomial Coefficient` ` ` `// in bottom up manner` ` ` `for` `(i = 0; i <= n; i++) {` ` ` `for` `(j = 0; j <= Math.min(i, k); j++) {` ` ` `// Base Cases` ` ` `if` `(j == 0 || j == i)` ` ` `C[i][j] = 1;` ` ` ` ` `// Calculate value using previously` ` ` `// stored values` ` ` `else` ` ` `C[i][j] = C[i - 1][j - 1] + C[i - 1][j];` ` ` `}` ` ` `}` ` ` ` ` `return` `C[n][k];` `}` ` ` `// Function to calculate sum of` `// nCj from j = 1 to k` `function` `count(n, k)` `{` ` ` `var` `sum = 0;` ` ` `for` `(` `var` `j = 1; j <= k; j++) {` ` ` ` ` `// Calling the nCr function` ` ` `// for each value of j` ` ` `sum = sum + binomialCoeff(n, j);` ` ` `}` ` ` ` ` `return` `sum;` `}` `// Driver code` `var` `n = 3;` `var` `k = 2;` `document.write(count(n, k));` `var` `n = 5;` `var` `k = 2;` `document.write(count(n, k));` `// This code is contributed by ShubhamSingh10` `</script>` |

**Output:**

615

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend live classes with industry experts, please refer **Geeks Classes Live**