Sum of Binomial Coefficient

/**
 * @file
 * @brief Algorithm to find sum of binomial coefficients of a given positive
 * integer.
 * @details Given a positive integer n, the task is to find the sum of binomial
 * coefficient i.e nC0 + nC1 + nC2 + ... + nCn-1 + nCn By induction, we can
 * prove that the sum is equal to 2^n
 * @see more on
 * https://en.wikipedia.org/wiki/Binomial_coefficient#Sums_of_the_binomial_coefficients
 * @author [muskan0719](https://github.com/muskan0719)
 */
#include <cassert>   /// for assert
#include <iostream>  /// for std::cin and std::cout

/**
 * @namespace math
 * @brief Mathematical algorithms
 */
namespace math {

/**
 * Function to calculate sum of binomial coefficients
 * @param n number
 * @return Sum of binomial coefficients of number
 */
uint64_t binomialCoeffSum(uint64_t n) {
    // Calculating 2^n
    return (1 << n);
}
}  // namespace math

/**
 * Function for testing binomialCoeffSum function.
 * test cases and assert statement.
 * @returns `void`
 */
static void test() {
    int test_case_1 = math::binomialCoeffSum(2);
    assert(test_case_1 == 4);
    std::cout << "Test_case_1 Passed!" << std::endl;

    int test_case_2 = math::binomialCoeffSum(3);
    assert(test_case_2 == 8);
    std::cout << "Test_case_2 Passed!" << std::endl;

    int test_case_3 = math::binomialCoeffSum(4);
    assert(test_case_3 == 16);
    std::cout << "Test_case_3 Passed!" << std::endl;

    int test_case_4 = math::binomialCoeffSum(5);
    assert(test_case_4 == 32);
    std::cout << "Test_case_4 Passed!" << std::endl;

    int test_case_5 = math::binomialCoeffSum(7);
    assert(test_case_5 == 128);
    std::cout << "Test_case_5 Passed!" << std::endl;
}

/**
 * @brief Main function
 * @returns 0 on exit
 */
int main() {
    test();  // execute the tests
    return 0;
}
Algerlogo

Β© Alger 2022

About us

We are a group of programmers helping each other build new things, whether it be writing complex encryption programs, or simple ciphers. Our goal is to work together to document and model beautiful, helpful and interesting algorithms using code. We are an open-source community - anyone can contribute. We check each other's work, communicate and collaborate to solve problems. We strive to be welcoming, respectful, yet make sure that our code follows the latest programming guidelines.