Odd numbers in N-th row of Pascal's Triangle - GeeksforGeeks

26 May, 2021
Given N, the row number of Pascal’s triangle(row starting from 0). Find the count of odd numbers in the N-th row of Pascal’s Triangle.Prerequisite: Pascal’s Triangle | Count number of 1’s in binary representation of N
Examples:  
Input : 11
Output : 8

Input : 20
Output : 4 
Approach: It appears the answer is always a power of 2. In fact, the following theorem exists: THEOREM: The number of odd entries in row N of Pascal’s Triangle is 2 raised to the number of 1’s in the binary expansion of N. Example: Since 83 = 64 + 16 + 2 + 1 has binary expansion (1010011), then row 83 has pow(2, 4) = 16 odd numbers.
Below is the implementation of the above approach: 
C++
Java
Python3
C#
PHP
Javascript
   // CPP code to find the count of odd numbers// in n-th row of Pascal's Triangle#include <bits/stdc++.h>    using namespace std ; /* Function to get no of set   bits in binary representation   of positive integer n */int countSetBits(int n){    unsigned int count = 0;    while (n)    {        count += n & 1;        n >>= 1;    }         return count;} int countOfOddsPascal(int n){    // Count number of 1's in binary    // representation of n.    int c = countSetBits(n);         // Number of odd numbers in n-th    // row is 2 raised to power the count.    return pow(2, c);} // Driver codeint main(){    int n = 20;       cout << countOfOddsPascal(n) ;       return 0;}
// Java code to find the count of odd// numbers in n-th row of Pascal's// Triangleimport java.io.*; class GFG {         /* Function to get no of set    bits in binary representation    of positive integer n */    static int countSetBits(int n)    {        long count = 0;        while (n > 0)        {            count += n & 1;            n >>= 1;        }                 return (int)count;    }         static int countOfOddsPascal(int n)    {                 // Count number of 1's in binary        // representation of n.        int c = countSetBits(n);                 // Number of odd numbers in n-th        // row is 2 raised to power the        // count.        return (int)Math.pow(2, c);    }         // Driver code    public static void main (String[] args)    {        int n = 20;        System.out.println(                     countOfOddsPascal(n));    }} // This code is contributed by anuj_67.
# Python code to find the count of# odd numbers in n-th row of# Pascal's Triangle # Function to get no of set# bits in binary representation# of positive integer ndef countSetBits(n):    count =0    while n:        count += n & 1        n >>= 1             return count def countOfOddPascal(n):     # Count number of 1's in binary    # representation of n.    c = countSetBits(n)     # Number of odd numbers in n-th    # row is 2 raised to power the count.    return pow(2, c) # Driver Programn = 20print(countOfOddPascal(n)) # This code is contributed by Shrikant13
// C# code to find the count of odd numbers// in n-th row of Pascal's Triangleusing System; class GFG {         /* Function to get no of set    bits in binary representation    of positive integer n */    static int countSetBits(int n)    {        int count = 0;        while (n > 0)        {            count += n & 1;            n >>= 1;        }                 return count;    }         static int countOfOddsPascal(int n)    {        // Count number of 1's in binary        // representation of n.        int c = countSetBits(n);                 // Number of odd numbers in n-th        // row is 2 raised to power the        // count.        return (int)Math.Pow(2, c);    }         // Driver code    public static void Main ()    {        int n = 20;        Console.WriteLine(                 countOfOddsPascal(n)) ;    }} // This code is contributed by anuj_67.
<?php// PHP code to find the// count of odd numbers// in n-th row of Pascal's// Triangle /* Function to get no of set   bits in binary representation   of positive integer n */function countSetBits($n){    $count = 0;    while ($n)    {        $count += $n & 1;        $n >>= 1;    }         return $count;} function countOfOddsPascal($n){         // Count number of 1's in binary    // representation of n.    $c = countSetBits($n);         // Number of odd numbers in n-th    // row is 2 raised to power the count.    return pow(2, $c);}     // Driver code    $n = 20;    echo countOfOddsPascal($n) ; // This code is contributed by mits.?>
<script>       // Javascript code to find the count of odd numbers    // in n-th row of Pascal's Triangle         /* Function to get no of set    bits in binary representation    of positive integer n */    function countSetBits(n)    {        let count = 0;        while (n > 0)        {            count += n & 1;            n >>= 1;        }                   return count;    }           function countOfOddsPascal(n)    {        // Count number of 1's in binary        // representation of n.        let c = countSetBits(n);                   // Number of odd numbers in n-th        // row is 2 raised to power the        // count.        return Math.pow(2, c);    }         let n = 20;    document.write(countOfOddsPascal(n)) ;     </script>
4
 
Time Complexity: O(L), where L is the length of a binary representation of a given N.  
shrikanth13
Mithun Kumar
vt_m
suresh07
binomial coefficient
Bit Magic
Bit Magic
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Set, Clear and Toggle a given bit of a number in C
Find the size of Largest Subset with positive Bitwise AND
Check whether bitwise AND of a number with any subset of an array is zero or not
Write an Efficient Method to Check if a Number is Multiple of 3
Highest power of 2 less than or equal to given number
Swap two nibbles in a byte
Swap bits in a given number
Check for Integer Overflow
Reverse actual bits of the given number
Find one extra character in a string